1. 程式人生 > >【JDK源碼】JDK的java.util.concurrent包結構

【JDK源碼】JDK的java.util.concurrent包結構

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包結構