python(33) 高併發 協程 Gevent

2021-10-04 19:12:02 字數 972 閱讀 7603

協程:實現單執行緒下的高併發。

例如web高併發伺服器,nginx,nodejs,其實都是單執行緒,而如何實現上萬的高併發呢,用的就是協程。

個人理解,協程快就是無論你啟動了幾個函式,整個程式的執行時長=最長的那個函式時長

"""

整個程式,無論你啟動幾個函式,執行花費 只用了函式中最長的那個時間 2s

2.執行的過程

" 1 run in func1"

" 3 run in func2"

" 5 run in func3"

" 6 run in func3"

" 4 run in func2"

" 2 run in func1'

"""import gevent

def func1():

print(" 1 run in func1")

gevent.sleep(2) #為什麼不是time.sleep 而是gevent.sleep?模仿io切換

print('2 run in func1')

def func2():

print(" 3 run in func2")

gevent.sleep(1)

print(" 4 run in func2")

def func3():

print(" 5 run in func3")

gevent.sleep(0)

print(" 6 run in func3")

#啟動了3個協程 列表的形式 spawn啟動乙個協程

gevent.joinall([

gevent.spawn(func1),#生成

gevent.spawn(func2),

gevent.spawn(func3),

])

python(33) 高併發 協程 Gevent

協程 實現單執行緒下的高併發。例如web高併發伺服器,nginx,nodejs,其實都是單執行緒,而如何實現上萬的高併發呢,用的就是協程。個人理解,協程快就是無論你啟動了幾個函式,整個程式的執行時長 最長的那個函式時長 整個程式,無論你啟動幾個函式,執行花費 只用了函式中最長的那個時間 2s 2.執...

python併發 協程

在作業系統中程序是資源分配的最小單位,執行緒是cpu排程的最小單位。協程 是單執行緒下的併發,又稱微執行緒,纖程。英文名coroutine。一句話說明 協程是一種使用者態的輕量級執行緒,即協程是由使用者程式自己控制排程的。也就是說程式設計師用 來控制切換.參考 程序 啟動多個程序 程序之間是由作業系...

python 併發程式設計 協程 協程介紹

協程 是單執行緒下的併發,又稱微執行緒,纖程。英文名coroutine。一句話說明什麼是執行緒 協程是一種使用者態的輕量級執行緒,即協程是由使用者程式自己控制排程的 需要強調的是 1.python的執行緒屬於核心級別的,即由作業系統控制排程 如單執行緒遇到io或執行時間過長就會被迫交出cpu執行許可...