高并发中的集合问题

第一代线程安全集合类

Vector、Hashtable

使用synchronized修饰方法保证线程安全,但效率低下

第二代线程非安全集合类

ArrayList、HashMap

线程不安全、性能好

使用Collections.synchronizedList(list)、Collections.synchronizedMap(map)保证线程安全

底层使用synchronized代码块锁,虽然也是锁住了所有代码,但锁在方法里面,比锁在方法外面性能有所提高(进方法本身需要分配资源)。

第三代线程安全集合类

java.util.concurrent.*中的ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteArraySet

底层大都使用Lock锁(jdk1.8中的ConcurrentHashMap没有使用Lock锁),保证安全的同时,性能也很高。

posted @ 2022-08-27 15:01  xiaohong吖  阅读(45)  评论(0)    收藏  举报