Java併發編程實踐讀書筆記

進程是計算機的最小資源分配單位,線程是最小的CPU調度單位

Java支持多線程,java.lang.Thread。用戶可以輕鬆地使用多線程。

多線程的好處有

1. 充分利用多核處理器的能力

2. 一個線程阻塞時其他線程可以繼續工作,提高資源利用率

3. 簡化編程模型,一個線程代表一個任務,從開始到結束。

4. 能夠實現異步處理

多線程帶來的困難

1. 線程間共享內存區,帶來race-condition問題

2. 多線程編程需要較高的技巧和經驗,測試較爲困難

3. 不良的多線程代碼可能帶來死鎖、飢餓等性能問題


當狀態是可變的,多個線程可以同時讀寫時,如果沒有進行有效的鎖保護,那麼就可能產生線程安全問題。

關鍵的幾個地方,狀態,可變,可見性,鎖。



java.util.concurrent包中提供了Executor相關的線程池, ConcurrentHashMap等相關的併發Collection庫。

java.util.concurrent.atomic中提供了AtomicInteger等可以併發執行int包裝

java.util.concurrent.lock中提供了ReentrantLock, 讀寫鎖等更加豐富的鎖


發佈了43 篇原創文章 · 獲贊 28 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章