【发布时间】:2009-11-01 23:03:03
【问题描述】:
我想知道这段代码是否会造成任何麻烦:
我有一个在许多线程之间共享的向量。每次线程必须从向量中添加/删除东西时,我都会在 synchronized 块下进行。但是,主线程有一个调用:
System.out.println("the vector's size: "+ vec.size());
不是synchronized。
这会引起麻烦吗?
【问题讨论】:
-
顺便说一句,您应该倾向于将 JDK 1.2 Collections API(ArrayList 或 LinkedList)与 Collections.synchronizedList(List) 结合使用以使它们同步。 Vector 已过时(与 Hashtable 一起)。
-
@Adamski 感谢您的评论,这对我帮助很大(虽然 3 岁)! ;)
标签: java vector multithreading thread-safety