日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中的线程、进程、协程以及区别

發布時間:2025/3/20 python 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中的线程、进程、协程以及区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

進程,是執行中的計算機程序。也就是說,每個代碼在執行的時候,首先本身即是一個進程。一個進程具有:就緒,運行,中斷,僵死,結束等狀態(不同操作系統不一樣)。

運行中每個進程都擁有自己的地址空間、內存、數據棧及其它資源。

操作系統本身自動管理著所有的進程(不需要用戶代碼干涉),并為這些進程合理分配可以執行時間。

進程可以通過派生新的進程來執行其它任務,不過每個進程還是都擁有自己的內存和數據棧等。

進程間可以通訊(發消息和數據),采用 進程間通信(IPC) 方式。

?

線程,是在進程中執行的代碼。

一個進程下可以運行多個線程,這些線程之間共享主進程內申請的操作系統資源。

線程,必須在一個存在的進程中啟動運行

線程使用進程獲得的系統資源,不會像進程那樣需要申請CPU等資源

線程無法給予公平執行時間,它可以被其他線程搶占,而進程按照操作系統的設定分配執行時間

每個進程中,都可以啟動很多個線程

?

協程: 協程,又稱微線程,纖程,英文名Coroutine。協程的作用,是在執行函數A時,可以隨時中斷,去執行函數B,然后中斷繼續執行函數A(可以自由切換)。但這一過程并不是函數調用(沒有調用語句),這一整個過程看似像多線程,然而協程只有一個線程執行.

協程的主要特色是:

協程間是協同調度的,這使得并發量數萬以上的時候,協程的性能是遠遠高于線程。

?

進程和線程的區別

一個進程中的各個線程與主進程共享相同的資源,與進程間互相獨立相比,線程之間信息共享和通信更加容易(都在進程中,并且共享內存等)。

線程一般以并發執行,正是由于這種并發和數據共享機制,使多任務間的協作成為可能。

進程一般以并行執行,這種并行能使得程序能同時在多個CPU上運行;

區別于多個線程只能在進程申請到的的“時間片”內運行(一個CPU內的進程,啟動了多個線程,線程調度共享這個進程的可執行時間片),進程可以真正實現程序的“同時”運行(多個CPU同時運行)。

?

協程優點:

  1. 協程的切換開銷更小,屬于程序級別的切換,操作系統完全感知不到,因而更加輕量級

  2. 單線程內就可以實現并發的效果,最大限度地利用cpu

協程缺點:

  1.協程的本質是單線程下,無法利用多核,可以是一個程序開啟多個進程,每個進程內開啟多個線程,每個線程內開啟協程

  2.協程指的是單個線程,因而一旦協程出現阻塞,將會阻塞整個線程

總結

以上是生活随笔為你收集整理的Python中的线程、进程、协程以及区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。