廖雪峰Java11多线程编程-3高级concurrent包-4Concurrent集合
生活随笔
收集整理的這篇文章主要介紹了
廖雪峰Java11多线程编程-3高级concurrent包-4Concurrent集合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Concurrent
用ReentrantLock+Condition實現Blocking Queue。
Blocking Queue:當一個線程調用getTask()時,該方法內部可能讓給線程進入等待狀態,直到條件滿足。線程喚醒以后,getTask()才會返回,而java.util.concurrent提供了線程安全的Blocking集合,如ArrayBlockingQueue。
java.util.Collections工具類還提供了舊的線程安全集合轉換器:
如把一個HashMap轉化為線程安全的HashMap:
實際使用了一個包裝類,包裝了非線程安全的Map,然后對所有的方法都用synchronized加鎖,這樣獲得線程安全的集合,性能比Concurrent低很多,不推薦使用。
總結:
使用java.util.concurrent提供的Blocking集合可以簡化多線程編程
- 多線程同時訪問Blocking集合是安全的
- 盡量使用JDK提供的concurrent集合,避免自己編寫同步代碼
轉載于:https://www.cnblogs.com/csj2018/p/11016289.html
總結
以上是生活随笔為你收集整理的廖雪峰Java11多线程编程-3高级concurrent包-4Concurrent集合的全部內容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: [转]数据库性能优化(老Key)
- 下一篇: 将英文man替换为中文man最简单的方法