線程與進程的關系



處理多線程就是異步,單線程就是同步
同步是阻塞模式,異步是非阻塞模式。

從一定意義上講,進程就是一個應用程序在處理機上的一次執行過程,它是一個動態的概念,而線程是進程中的一部分,進程包含多個線程在運行。
程序是一個沒有生命的實體,只有處理器賦予程序生命時,它才能成為一個活動的實體,我們稱其為進程。
通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源。在引入線程的操作系統中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調度的基本單位。由於線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更高效的提高系統內多個程序間並發執行的程度。
線程和進程的區別在於,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧和程序計數器為其執行上下文
多線程主要是為了節約CPU時間,發揮利用,根據具體情況而定。線程的運行中需要使用計算機的內存資源和CPU。
進程間相互獨立,同一進程的各線程間共享。某進程內的線程在其它進程不可見。
線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統資源,
只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。



線程與進程個人的理解好比地鐵資源:

 

好比地鐵5號線中的一條線路的阻塞會影響整段5號線的運行。間接的也會影響到其他地鐵線路的阻塞。
進程好比站點(國貿站,大望路站等),線程好比線路
一個站點可以有多條線路,站點不是活動的實體是沒有能力調配整套地鐵資源的。只有中央系統才能統一操作活動的實體。
進程作為地點基本單位,
線程作為獨立運行和路線調度的基本單位,不需要擁有資源(如廁所,空調,美化等),所以付出的開銷就比較小,多個線路的的通行能更高效提高系統。每條線路有自己設計空間和目標站點就也是所說執行上下文。
子進程和父進程有不同的車站(5號線和1號線東單站),而多個線路可共享同一個站點。
設計線路的長短就相當是計算出時間,距離等。內存資源。多條線種可以縮短距離,從而節約CPU時間,
站點是相互獨立的。上一站與下一站線路是共享通信的,某個線路在其他的線路是不可見的。(如果大望路的線路與房山線路沒有必要經常通信聯系。)是需要知道確定自己上下文就可以了。

線路是站點的鏈接機構。也是獨立運行的基本單位。它擁有的與其他線路一樣的配置資源上下文可以彼此通信實現運輸。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM