線程與進(jìn)程的區(qū)別
不同進(jìn)程享有各自獨(dú)立的地址空間幔嗦。切換花銷大
同一進(jìn)程的不同線程享有公共的地址空間酿愧。切換花銷小
操作系統(tǒng)擁有內(nèi)核空間和用戶空間。用戶態(tài)下CPU只享有前者控制權(quán)邀泉,內(nèi)核態(tài)下CPU兩者皆可控制嬉挡。
用戶級(jí)線程
圖片發(fā)自簡(jiǎn)書(shū)App
用戶空間—放置進(jìn)程(一個(gè)進(jìn)程含多個(gè)線程钝鸽,構(gòu)成一張線程表)
內(nèi)核空間—放置進(jìn)程表。
特點(diǎn):線程的切換不需要CPU進(jìn)入內(nèi)核態(tài)庞钢。一旦發(fā)生系統(tǒng)調(diào)用(內(nèi)核態(tài))拔恰,會(huì)阻塞進(jìn)程,從而阻塞線程焊夸。操作系統(tǒng)以進(jìn)程為CPU調(diào)度單位仁连。
核心級(jí)線程
圖片發(fā)自簡(jiǎn)書(shū)App
用戶空間—放置進(jìn)程(一個(gè)進(jìn)程含多個(gè)線程)
內(nèi)核空間—放置進(jìn)程表和線程表。
特點(diǎn):線程的切換需要CPU進(jìn)入內(nèi)核態(tài)阱穗。C操作系統(tǒng)以線程為CPU調(diào)度單位饭冬。