UNIX高級環境編程 第11章 線程 [線程和進程聯繫和區別]

第11章 線程

線程和進程聯繫和區別

咱們從調度、併發性、 系統開銷、擁有資源等方面,來比較線程與進程併發

  • 1.調度操作系統

    在引入線程的操做系統中,則把線程做爲調度和分派的基本單位。而把進程做爲資源擁有的基本單位. 在同一進程中,線程的切換不會引發進程的切換.在 由一個進程中的線程切換到另外一個進程中的線程時,將會引發進程的切換。線程

  • 2.併發性進程

    在引入線程的操做系統中,不只進程之間能夠併發執行,並且在一個進程中的多個線程之間,亦可併發執行,於是使操做系統具備更好的併發性,從而能更有效地使用系統資源和提升系統吞吐量。內存

  • 3.擁有資源
    進程是擁有資源的一個獨立單位。通常地說,線程本身不擁有系統資源(也有一點必不可少的資源),但它能夠訪問其隸屬進程的資源: 代碼段、數據段、已打開的文件、I/O設備等. 資源

  • 4.系統開銷
    因爲在建立或撤消進程時,系統都要爲之分配或回收資源,如內存空間、I/O設備等。在進行進程切換時,涉及到整個當前進程CPU環境的保存以及新被調度運行的進程的CPU環境的設置。而線程切換隻須保存和設置少許寄存器的內容,並不涉及存儲器管理方面的操做。因爲同一進程中的多個線程具備相同的地址空間,導致它們之間的同步和通訊的實現,也變得比較容易。同步

相關文章
相關標籤/搜索