操作系統(tǒng)的中的進(jìn)程和線程

引言:進(jìn)程和線程似乎已經(jīng)成為現(xiàn)在面試的一大熱點(diǎn),幾乎成為許多大廠面試必備,下面記錄自己查詢相關(guān)資料感覺比較好的解釋:
大家都知道:進(jìn)程其實(shí)就是一個(gè)在電腦上運(yùn)行的程序,例如QQ;而線程就是我們這個(gè)運(yùn)行程序的一個(gè)“分支任務(wù)”例如:你和C正在聊天的同時(shí),B又向你發(fā)起了QQ語音;這兩個(gè)事件就是同屬于QQ這個(gè)進(jìn)程的兩個(gè)線程;(個(gè)人理解)

如果一個(gè)操作系統(tǒng)擁有線程概念時(shí),那么進(jìn)程是就是該操作系統(tǒng)資源分配的最小單位;而線程就是操作系統(tǒng)調(diào)度和運(yùn)行的基本單位;
各個(gè)進(jìn)程之間擁有不同的數(shù)據(jù)空間和代碼;就算存在父子關(guān)系也是;
而同屬一個(gè)進(jìn)程的不同線程他們共享同一個(gè)進(jìn)程的數(shù)據(jù)空間和代碼(起始就是進(jìn)程的上下文(PCB));各自僅僅又有少量運(yùn)行必要的數(shù)據(jù)結(jié)構(gòu)(寄存器,棧,程序計(jì)數(shù)器等,);
引自:知乎:
進(jìn)程和線程兩個(gè)名詞不過是對應(yīng)的CPU時(shí)間段的描述,名詞就是這樣的功能。
進(jìn)程就是包換上下文切換的程序執(zhí)行時(shí)間總和 = CPU加載上下文+CPU執(zhí)行+CPU保存上下文
線程是什么呢?進(jìn)程的顆粒度太大,每次都要有上下文的調(diào)入,保存,調(diào)出。如果我們把進(jìn)程比喻為一個(gè)運(yùn)行在電腦上的軟件,那么一個(gè)軟件的執(zhí)行不可能是一條邏輯執(zhí)行的,必定有多個(gè)分支和多個(gè)程序段,就好比要實(shí)現(xiàn)程序A,實(shí)際分成 a,b,c等多個(gè)塊組合而成。那么這里具體的執(zhí)行就可能變成:程序A得到CPU =》CPU加載上下文,開始執(zhí)行程序A的a小段,然后執(zhí)行A的b小段,然后再執(zhí)行A的c小段,最后CPU保存A的上下文。這里a,b,c的執(zhí)行是共享了A的上下文,CPU在執(zhí)行的時(shí)候沒有進(jìn)行上下文切換的。這**里的a,b,c就是線程,也就是說線程是共享了進(jìn)程的上下文環(huán)境,的更為細(xì)小的CPU時(shí)間段。到此全文結(jié)束,再一個(gè)總結(jié):****進(jìn)程和線程都是一個(gè)時(shí)間段的描述,是CPU工作時(shí)間段的描述,不過是顆粒大小不同。
**作者:zhonyong鏈接:https://www.zhihu.com/question/25532384/answer/81152571來源:知乎著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容