[置顶] 将线程不同步的即线程不安全的arraylist转换成线程同步的


在java中的同步,是指多个线程在同时要访问某个对象、变量、方法、代码快等等时,保证只有唯一线程访问同步的对象(即用synchronized修为的内容)。也可以这样理解:同步就是指保证在同一时刻只有一个线程访问同步对象的前提下,确保操作同步对象的线程顺序,跟他们发出访问同步对象请求时的顺序一致。 Vector是老版本jkd(1.0的时候就有)的一个集合类,
因为Vector是同步的而ArrayList是非同步的,所以Vector的性能比ArrayList要差。在不需要保证同步的情况下。尽量使用ArryList,在需要同步时,可以考虑用Vector(其实在需要同步的条件下,也同样不推荐用Vector,java中有个集合工具类Collections,它可以将一个ArrayList编程线程安全的)。

把arraylist转换成同步的
List list = Collections.synchronizedList(new ArrayList()); ...
synchronized(list) {
  Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext()) foo(i.next());
}
取值的时候必须在synchronized中

你可能感兴趣的:([置顶] 将线程不同步的即线程不安全的arraylist转换成线程同步的)