通過下面這張圖你就能看清楚了,程序、執行緒和攜程的關係
程序:
多個程序是可以執行在多個cpu當中的,比如你的電腦是4核,可以同時並行執行四個程序,這是真正物理上的並行執行。
執行緒:
每個程序又可以有多個執行緒,執行緒是輪詢執行的,因為輪詢的速度很快,所以可以看成是並行。
微執行緒:
攜程是微執行緒,乙個執行緒可以分為多個攜程,同樣也是輪詢執行,這樣的好處是減少cpu的資源消耗,一些比較多而且小的事件可以用攜程去處理,減少資源的開銷。
協程原理通常採用協程庫(擴充套件庫)來完成協程開發生成器器
def fun1():
print(100)
print(200)
yield # 暫停** 儲存斷點狀態
print(100)
print(100)
yield
eventlet
print(100)
print(100)
def fun2():
print(100)
print(200)
yield
print(100)
print(100)
yield
print(100)
print(100)
gen_obj1 = fun1() # 建立了生成器器物件
gen_obj2 = fun2()
next(gen_obj1)
next(gen_obj2)
next(gen_obj1)
next(gen_obj2)
協程庫能夠自動幫助完成協程的執行切換
eventlet
from multiprocessing import processe1.start()p = processs()
p.start()
from threading import thread
t = thread()
t.start()
from eventlet import eventlet
e1 = eventlet()
e2 = eventlet()
e2.start()
協程運行socketio伺服器器的⽅方式
pip install eventlet
import eventleteventlet.monkey_patch()
import socketio
import eventlet.wsgi
# server物件理理解為flask⾥裡里⾯面的應⽤用物件就可以
# sio物件是⽤用來管理理socketio即時通訊業務的
sio = socketio.server(async_mode='eventlet') #
指明在evenlet模式下
eventlet.wsgi.server(eventlet.listen(('',
通俗的解釋程序和執行緒
程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發現有乙個很好的模擬,可以把它們解釋地清晰易懂。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就...
執行緒和程序的通俗解釋
程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。下面篇材料,有乙個很好的模擬,可以把它們解釋地清晰易懂。1 計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2 假定工廠的電力有限,一次只能供給乙個車間使用。也就是說,乙個車間...
通俗易懂的程序與執行緒解釋
程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發現有乙個很好的模擬,可以把它們解釋地清晰易懂。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就...