進(jìn)程
是什么:
1不狮、計(jì)算機(jī)系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位降铸,是應(yīng)用程序運(yùn)行的載體,更好的理解就是電腦的任務(wù)管理器摇零,下圖中每個(gè)都是一個(gè)進(jìn)程推掸。
2、每個(gè)CPU同一時(shí)間只能處理一個(gè)進(jìn)程驻仅,那為什么還能同時(shí)處理上面的那么多進(jìn)程谅畅,實(shí)際上是CPU用很快的速度切換不同的進(jìn)程。(舉個(gè)例子:你一個(gè)人單挑100個(gè)人噪服,你要么就一個(gè)打完打下一個(gè)毡泻。要么就是你一個(gè)人“同時(shí)”打100個(gè)人。當(dāng)你速度足夠快時(shí)粘优,你瞬閃到每個(gè)人面前打一拳仇味,有的人還被你打了3-4拳,瞬間3輪過后雹顺,100個(gè)人倒下了丹墨。在普通人面前,就覺得你同時(shí)擊倒了100人嬉愧。但其實(shí)說嚴(yán)格點(diǎn)贩挣,你還是一個(gè)一個(gè)擊倒的。)進(jìn)程之間的切換還會有一個(gè)問題没酣,開銷很大揽惹。
3、任務(wù)調(diào)度采用的是時(shí)間片輪轉(zhuǎn)的搶占式調(diào)度方式四康。
4搪搏、進(jìn)程切換的條件是:進(jìn)程執(zhí)行完畢、分配給進(jìn)程的cpu時(shí)間片結(jié)束闪金,系統(tǒng)發(fā)生中斷需要處理疯溺,或者進(jìn)程等待必要的資源(進(jìn)程阻塞),阻塞的話程序還有其他可以執(zhí)行的地方哎垦,不一定要等待囱嫩,所以就有了線程。
線程(由內(nèi)核管理和調(diào)度)
是什么:
1漏设、一個(gè)進(jìn)程可以有多個(gè)線程墨闲,多個(gè)線程共享進(jìn)程的內(nèi)存空間。
2郑口、任務(wù)調(diào)度采用的是時(shí)間片輪轉(zhuǎn)的搶占式調(diào)度方式鸳碧。
進(jìn)程與線程的區(qū)別
1盾鳞、線程是程序執(zhí)行的最小單位,而進(jìn)程是操作系統(tǒng)分配資源的最小單位瞻离;
2腾仅、一個(gè)進(jìn)程由一個(gè)或多個(gè)線程組成,線程是一個(gè)進(jìn)程中代碼的不同執(zhí)行路線套利;
3推励、進(jìn)程之間相互獨(dú)立,但同一進(jìn)程下的各個(gè)線程之間共享程序的內(nèi)存空間(包括代碼段肉迫、數(shù)據(jù)集验辞、堆等)及一些進(jìn)程級的資源(如打開文件和信號),某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見喊衫;
4跌造、調(diào)度和切換:線程上下文切換比進(jìn)程上下文切換要快得多。
作者:一入碼坑深似海
鏈接:http://www.reibang.com/p/80bde972196d
來源:簡書
著作權(quán)歸作者所有格侯。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)鼻听,非商業(yè)轉(zhuǎn)載請注明出處。
協(xié)程(由程序員自己寫程序來管理調(diào)度的联四,對于內(nèi)核不可見撑碴,也叫用戶空間線程)
協(xié)程的目的:如果說每個(gè)請求占用一個(gè)線程去完成完整的業(yè)務(wù)邏輯,系統(tǒng)的吞吐能力取決于每個(gè)線程的操作耗時(shí)朝墩,如果遇到很耗時(shí)的I/0行為醉拓,整個(gè)系統(tǒng)的吞吐就會立刻下降,這個(gè)時(shí)候線程就會處于阻塞狀態(tài)收苏,如果線程很多亿卤,就會存在很多線程處于空閑狀態(tài)(等該線程執(zhí)行完才能執(zhí)行),就會造成資源應(yīng)用不徹底鹿霸。最常見的就是數(shù)據(jù)庫操作(它是同步阻塞的)排吴,這里的耗時(shí)其實(shí)是讓CPU一直在等待I/O返回,其實(shí)在這種情況下線程根本沒有利用CPU去做運(yùn)算懦鼠,而是處于空轉(zhuǎn)狀態(tài)钻哩。協(xié)程的目的就是當(dāng)出現(xiàn)長時(shí)間的I/O操作時(shí),通過讓出目前的協(xié)程調(diào)度肛冶,執(zhí)行下一個(gè)任務(wù)街氢。
協(xié)程的特點(diǎn):
1、協(xié)同睦袖,因?yàn)槭怯沙绦騿T自己寫的調(diào)度策略珊肃,其通過協(xié)作而不是搶占來進(jìn)行切換
2、在用戶態(tài)完成創(chuàng)建,切換和銷毀
3伦乔、* ?? 從編程角度上看厉亏,協(xié)程的思想本質(zhì)上就是控制流的主動(dòng)讓出(yield)和恢復(fù)(resume)機(jī)制*