HashMap & Hashtable & CocurrentHashMap 与 ArrayList & CopyOnWriteArrayList

1. 同步集合类如Hashtable和Vector虽能做到线程安全,但分别使用Collections.synchronizedMap()方法和Collections.synchronizedList()方法返回对象,使用时对整个集合加锁,所以性能不佳。

2. ConcurrentHashMap和CopyOnWriteArrayList不仅线程安全,而且适合高并发应用;Hashtable大小增长到一定时候,性能会越来越差,因为迭代时锁的时间会变得越来越长(迭代时锁住整个map);而CurrentHashMap使用了分割(segmentation),无论增长多大,只需要锁住map的某个部分,所以迭代时,其它线程不需要等待整个线程迭代结束。

3. HashMap线程不安全,但key和value可接受null对象(hashtable都不能);

 

posted @ 2018-08-21 18:13  岩文01  阅读(252)  评论(0编辑  收藏  举报