進(jìn)程和線程都是操作系統(tǒng)所有的程序運(yùn)行的基本單元,操作系統(tǒng)利用該基本單元實(shí)現(xiàn)操作系統(tǒng)對應(yīng)用的并發(fā)性。
進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。
1.進(jìn)程有獨(dú)立的地址空間,一個進(jìn)程崩潰后,在保護(hù)模式下不會對其它進(jìn)程產(chǎn)生影響。
2.線程只是一個進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個線程死掉就等于整個進(jìn)程死掉。
所以多進(jìn)程的程序要比多線程的程序健壯,但切換進(jìn)程耗費(fèi)資源較大,效率較差。但對于一些要求同時進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。
如有不當(dāng)、錯誤之處,歡迎指正!