進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元,系統(tǒng)利用改基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性涣楷。
進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理的方式失受。進(jìn)程有獨(dú)立的地址空間莲趣,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其他進(jìn)程產(chǎn)生影響拂募,而線程知識(shí)一個(gè)進(jìn)程中不同執(zhí)行路徑庭猩,線程有自己的堆棧和局部變量,但線程之間沒(méi)有單獨(dú)的地址空間陈症,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉蔼水,所以多進(jìn)程的程序要比多線程的程序健壯,但是進(jìn)程切換時(shí)爬凑,耗費(fèi)資源很大徙缴,效率差一些。但對(duì)于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作嘁信,只能用線程于样,不能用進(jìn)程。