併發集合與普通集合的區別
在Java中,有普通集合、同步的集合(即線程安全的集合)、併發集合。
併發集合常見的有ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque
等。併發集合位於java.util.concurrent
包下,是在JDK1.5之後纔有的。
- 普通集合通常性能最高,但是不保證多線程的安全性和併發的可靠性;
- 線程安全集合僅僅是給集合添加了
synchronized(同步的)
同步鎖,嚴重影響了性能,而且對併發的效率就更低了; - 併發集合通過複雜的策略不僅保證了多線程的安全,又提高了併發時的效率。