上一篇文章: Python進程專題完結篇:多進程處理的通常建議
下一篇文章: Python線程專題1:多線程使用的必要性
進程:可以完成多任務,好比在一個電腦上能夠運行多個軟件。線程:也可以完成多任務,但通常是在同一個程序內完成多任務,例如qq打開多個頁面。segmentfault
對吧方向 | 進程 | 線程 |
---|---|---|
是否能夠完成多任務 | 能夠,好比一個電腦上運行多個相同軟件 | 能夠,好比在一個軟件內打開多個頁面 |
定義 | 系統進行資源分配和調度的一個獨立單位。 | 是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能夠獨立運行的基本單位。除了一些運行比不可少的資源外(如程序計數器、一組寄存器和棧),線程基本不用有其它系統資源,它只和同進程的其它線程共享進程的公共資源。因爲佔用資源少,也使得多線程程序併發比較高。 |
最值 | 一個程序至少有一個進程 | 一個進程至少有一個線程 |
運行效率 | 進程在執行過程當中擁有獨立的內存單元,相對線程會慢 | 多個線程共享內存,極大提升了程序運行效率。 |
運行環境 | 內部必須包含一個線程 | 必須在進程中運行 |
優缺點 | 利於資源的管理和保護,但執行開銷大 | 執行開銷小,單不利於資源的管理和保護 |
Python線程專題1:多線程使用的必要性
Python線程專題2:多線程共享全局變量
Python線程專題3:thread對象
Python線程專題4:Timer對象、Lock對象、Rlock對象
Python線程專題5:信號量與有邊界的信號量
Python線程專題6:事件
Python線程專題7:條件變量
Python線程專題8:使用鎖的注意事項
Python線程專題9:線程終止與掛起
Python線程專題10:實用工具函數
Python線程專題11:queue
Python線程專題12:多線程按順序執行多線程