Python3 進程、線程和協程

進程、線程和協程的對比

1.定義對比

進程:是系統進行資源分配的基本單位,每啓動一個進程,操作系統都需要爲其分配運行資源
線程:是運行程序中的一個執行分支,是CPU調度的基本單位
協程:在不開闢線程的基礎上完成多任務,也就是在單線程的情況下完成多任務,多個任務按照一定順序交替執行
【注】

進程是操作系統資源分配的基本單位;線程是CPU調度的基本單位

如果你對python感興趣,我這有個學習Python基地,裏面有很多學習資料,感興趣的+Q羣:688244617

2.功能對比

進程:能夠完成多任務,如:一臺電腦運行多個軟件
線程:能夠完成多任務,如:在一個QQ中開啓多個聊天窗口
3.關係對比

線程是依附在進程裏面的,沒有進程就沒有線程
一個進程默認提供一條線程,進程可以創建多個線程
一個線程裏面可以有多個協程
4.區別

進程之間不共享全局變量
線程之間共享全局變量,需要注意資源競爭的問題。解決手段:互斥鎖或線程同步
創建進程的資源開銷要比創建線程的資源開銷大
進程是操作系統資源分配的基本單位,線程是CPU調度的基本單位
線程不能夠獨立執行,必須依存在進程中
多進程開發比單進程多線程開發穩定性要強
多進程、多線程根據CPU核數不一樣可能是並行的,但是協程是在一個線程中執行的,所以是併發的
5.優缺點:

多進程:

優點:可以用多核
缺點:資源開銷大
多線程:

優點:資源開銷小
缺點:不能使用多核
協程:

協程切換任務資源小,效率高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章