什麼是協程?協程的優缺點

2021-10-22 03:14:22 字數 541 閱讀 5099

協程 :協程是微執行緒,纖程,本質是乙個單執行緒

協程能在單執行緒處理高併發,因為遇到 i/o 自動切換,執行緒遇到 i/o 操作會等待、阻塞。

協程的優缺點:

缺點 : 缺點是無法利用多核資源,本質是單核的,它不能同時將單個cpu的多個核用上,協程需要和程序配合才能執行在多cpu上。

優點: 不僅是處理高併發(單執行緒下處理高併發),還特別節省資源(協程的本質是乙個單執行緒,當然節省空間)。

為什麼協程能夠遇到 i/o 自動切換 ?

greenlet是c語言寫的乙個模組,遇到 i/o 手動切換,協程有乙個gevent模組,封裝了greenle模組,遇到 i/o自動切換。

gevent :

gevent只用起乙個執行緒,當請求發出去後 gevent就不管,永遠就只有乙個執行緒工作,誰先回來誰先處理

什麼是協程

協程,英文coroutines,是一種比執行緒更加輕量級的存在。協程不是程序,也不是執行緒,它就是乙個可以在某個地方掛起的特殊函式,並且可以重新在掛起處繼續執行。所以說,協程與程序 執行緒相比,不是乙個維度的概念。乙個程序可以包含多個執行緒,乙個執行緒也可以包含多個協程,也就是說,乙個執行緒內可以有...

協程巢狀協程

import asyncio import functools 第三層協程 async def test1 print 我是test1 await asyncio.sleep 1 print test1已經睡了1秒 await asyncio.sleep 3 print test1又睡了3秒 ret...

什麼是協程,及於程序和執行緒比得優缺點

協程,又稱微執行緒,纖程。英文名coroutine。協程的概念很早就提出來了,但直到最近幾年才在某些語言 如lua 中得到廣泛應用。子程式,或者稱為函式,在所有語言中都是層級呼叫,比如a呼叫b,b在執行過程中又呼叫了c,c執行完畢返回,b執行完畢返回,最後是a執行完畢。所以子程式呼叫是通過棧實現的,...