前言:本系列將從零開始講解java多線程相關(guān)的技術(shù),內(nèi)容參考于《java多線程核心技術(shù)》與《java并發(fā)編程實戰(zhàn)》等相關(guān)資料,希望站在巨人的肩膀上,再通過我的理解能讓知識更加簡單易懂。
并發(fā)歷史
在沒有操作系統(tǒng)的時候,一臺計算機只執(zhí)行一個程序,在那個時候,對珍貴的計算機資源來說是一種浪費
為了提高資源利用率(比如在等待輸入的時候,可以執(zhí)行其他程序),為了提高公平性(不同用戶和程序?qū)τ嬎銠C上的資源有平等的使用權(quán)),為了提高便利性(實現(xiàn)多個任務(wù)的時候,可以通過多個程序,而不用一個程序?qū)崿F(xiàn)多個任務(wù))計算機加入了操作系統(tǒng)
同樣,相同的原因,線程誕生了。線程可以共享進程的資源。
線程優(yōu)勢
發(fā)揮多處理器的強大功能
隨著技術(shù)的發(fā)展,多處理器系統(tǒng)越來越普及。在一個雙處理器系統(tǒng)上,如果只用一個線程,那么無疑浪費了資源。