咱們從調度、併發性、 系統開銷、擁有資源等方面,來比較線程與進程併發
1.調度操作系統
在引入線程的操做系統中,則把線程做爲調度和分派的基本單位。而把進程做爲資源擁有的基本單位. 在同一進程中,線程的切換不會引發進程的切換.在 由一個進程中的線程切換到另外一個進程中的線程時,將會引發進程的切換。線程
2.併發性進程
在引入線程的操做系統中,不只進程之間能夠併發執行,並且在一個進程中的多個線程之間,亦可併發執行,於是使操做系統具備更好的併發性,從而能更有效地使用系統資源和提升系統吞吐量。內存
3.擁有資源
進程是擁有資源的一個獨立單位。通常地說,線程本身不擁有系統資源(也有一點必不可少的資源),但它能夠訪問其隸屬進程的資源: 代碼段、數據段、已打開的文件、I/O設備等. 資源
4.系統開銷
因爲在建立或撤消進程時,系統都要爲之分配或回收資源,如內存空間、I/O設備等。在進行進程切換時,涉及到整個當前進程CPU環境的保存以及新被調度運行的進程的CPU環境的設置。而線程切換隻須保存和設置少許寄存器的內容,並不涉及存儲器管理方面的操做。因爲同一進程中的多個線程具備相同的地址空間,導致它們之間的同步和通訊的實現,也變得比較容易。同步