前幾天研究java的線程,感覺理論的掌握不夠,故向同學(xué)借了點資料研究,不了同學(xué)給我考博的操作系統(tǒng)的材料,我總結(jié)了一下,把其中部分分享一下,大家一同進(jìn)步.
1 線程的引入
??????進(jìn)程:資源分配單位(存儲器、文件)和CPU調(diào)度(分派)單位。又稱為"任務(wù)(task)"
??????線程:作為CPU調(diào)度單位,而進(jìn)程只作為其他資源分配單位。
只擁有必不可少的資源,如:線程狀態(tài)、寄存器上下文和棧
同樣具有就緒、阻塞和執(zhí)行三種基本狀態(tài)
??????線程的優(yōu)點:減小并發(fā)執(zhí)行的時間和空間開銷(線程的創(chuàng)建、退出和調(diào)度),因此容許在系統(tǒng)中建立更多的線程來提高并發(fā)程度。
??????線程的創(chuàng)建時間比進(jìn)程短;
??????線程的終止時間比進(jìn)程短;
??????同進(jìn)程內(nèi)的線程切換時間比進(jìn)程短;
??????由于同進(jìn)程內(nèi)線程間共享內(nèi)存和文件資源,可直接進(jìn)行不通過內(nèi)核的通信;
2 進(jìn)程和線程的比較
?????????地址空間和其他資源(如打開文件):進(jìn)程間相互獨立,同一進(jìn)程的各線程間共享--某進(jìn)程內(nèi)的線程在其他進(jìn)程不可見
?????????通信:進(jìn)程間通信IPC,線程間可以直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來進(jìn)行通信--需要進(jìn)程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性
?????????調(diào)度:線程上下文切換比進(jìn)程上下文切換要快得多