四、线程并发基础之线程安全的集合类

四、线程并发基础之线程安全的集合类_第1张图片
1. Hashtable:继承于Dictionary,散列表,键值对,实现Map、Cloneable、Serializable接口,key和value都不能为空。
影响参数:
初始容量:哈希表创建时的容量;
加载因子:哈希表容量增加的尺度。通常是0.75。
线程安全原因:每个方法中都实现了Serializable接口。
2. ConcurrentHashMap:hashMap安全版,比hashtable效率高,使用锁分离技术,内部使用段(Segment)
3. CopyOnWriteArrayList:使用ReentrantLock的lock()方法加锁,unlock()方法解锁,增加元素时会复制出一个副本然后改变原有引用指向副本。好处:读写分离,读写不同的对象;坏处:占用内存空间。
4. CopyOnWriteArraySet:在 CopyOnWriteArrayList基础上使用java的装饰模式。
5. Vector:队列,支持相关的增删改查,使用synchronized同步方发锁。
6. StringBuffer:同步方法锁synchronized。
总结:执行效率:无锁、无需同步安全代码执行效率>方法块锁>类锁和方法锁

你可能感兴趣的:(并发编程,java,线程安全,多线程,并发编程,高并发)