【JDK源碼】JDK的java.util.concurrent包結構
阿新 • • 發佈:2018-06-22
cli 安全 出現 CA cat sun executor 並發 ML
本文從JDK源碼包中截取出concurrent包的所有類,對該包整體結構進行一個概述。
在JDK1.5之前,Java中要進行業務並發時,通常需要有程序員獨立完成代碼實現,當然也有一些開源的框架提供了這些功能,但是這些依然沒有JDK自帶的功能使用起來方便。而當針對高質量Java多線程並發程序設計時,為防止死蹦等現象的出現,比如使用java之前的wait()、notify()和synchronized等,每每需要考慮性能、死鎖、公平性、資源管理以及如何避免線程安全性方面帶來的危害等諸多因素,往往會采用一些較為復雜的安全策略,加重了程序員的開發負擔.萬幸的是,在JDK1.5出現之後,Sun大神(Doug Lea)終於為我們推出了java.util.concurrent工具包以簡化並發完成。開發者們借助於此,將有效的減少競爭條件(race conditions)和死鎖線程。concurrent包很好的解決了這些問題,為我們提供了更實用的並發程序模型。
JDK的java.util.concurrent包,包含兩個子包atomic和locks。
java.util.concurrent.atomic
atomic包含原子類。
java.util.concurrent.locks
locks包包含鎖相關的類,如lock、condition等
java.util.concurrent
concurrent包下包含一些並發工具類,如Executors、Semaphore、CountDownLatch、CyclicBarrier、BlockingQueue等。
參考資料:
java的concurrent用法詳解
java.util.concurrent包源碼分析閱讀jdk源碼
【JDK源碼】JDK的java.util.concurrent包結構