進程與線程的區別:
1、進程是資源分配的最小單位,線程是CPU調度的最小單位。
2、線程依賴於進程而存在,一個線程只能屬於一個進程,一個進程可以有一個線程或者多個線程。
3、進程在執行過程中擁有獨立的內存單元,而多個線程共享進程的內存。(資源分配給進程,同一進程的所有線程共享該進程的所有資源。同一進程中的多個線程共享代碼段(代碼和常量)、數據段(全局變量和靜態變量)、擴展段(堆存儲)。但是每個線程擁有自己的棧段,棧段又叫運行時段,用來存放所有局部變量和臨時變量)
4、進程編程調試簡單可靠性高,但是創建銷毀開銷大;線程正相反,開銷小,切換速度快,但是編程調試相對復雜。
5、進程間不會相互影響;而一個線程掛掉將導致整個進程掛掉。
6、進程適應於多核、多機分布;線程適用於多核