同步容器
java.util.Collections 类
同步容器 - Vector
Vector 不是线程安全的
执行结果:
报错,原因:当一个线程remove(i)时,同时另一个线程get(j), i=j,此时就回报错
Vector 遍历
同步容器或者普通容器中,test1(),test2(),方法都会抛异常,因为在遍历时进行了移除操作,如果要移除Vector元素,可以先做标识,遍历完之后再进行移除,也推荐直接用for循环来进行包含增删操作的遍历。
Stack
Stack 继承自Vector,与Vector类似
同步容器 - HashTable
运行结果:5000
Collections.synchronizedList
运行结果:5000
Collections.synchronizedSet
运行结果:5000
Collections.synchronizedMap
运行结果:5000
总结
同步容器的方法主要是采用synchronized进行同步,这会影响性能,同时同步容器不一定能真正做到线程安全,既然同步容器性能不是很好,又不能做到线程安全,有没有可以取代的容器??? --有-----》并发容器