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