同步容器
通过synchronized保证同一时刻内只有一个线程在使用容器,从而使得容器线程安全。synchronized的意思是同步,它体现在将多线程变为串行等待执行。复合操作不能保证线程安全。
常见的同步容器:HashTable, Vector
并发容器
允许多线程同时使用容器,并且保证线程安全。核心:锁、CAS(乐观锁)、COW(读写分离)、分段锁。
常见的并发容器:ConcurrentHashMap、CopyOnWriteArrayList
在并发场景中,建议直接使用java.util.concurent包中提供的容器类,如果需要复合操作时,建议使用有些容器自身提供的复合方法。