在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 insynchronized block
while (i.hasNext()) foo(i.next());取值的时候必须在synchronized中 |