線程與進程的區別:
1)從定義來看:
線程:線程是系統執行的最小單位,即CPU調度的最小單位
進程:進程是一組指令加數據加資源的組合,(正在運行的程序,動態的);進程是資源分配的最小單位。
2)進程和線程的關係:
a.一個線程只能屬於一個進程,一個進程可以有多個線程,但是至少有一個線程即主線程。
b.同一個進程的所有線程共享該線程的所有資源
c.線程是指進程內的一個執行單元,也是進程內的可調度實體。
d.進程的創建函數 fork();線程的創建函數pthread_create();
3)多線程和多進程的區別:
線程間的數據共享:多線程之間共享全局變量,堆區數據,文件描述符,但是各個線程有自己的棧區。
父子進程間的數據共享:只有文件描述符共享,其餘都不共享。