python中的异步与同步
異步: 多任務, 多個任務之間執行沒有先后順序,可以同時運行,執行的先后順序不會有什么影響,存在的多條運行主線
?
同步: 多任務, 多個任務之間執行的時候要求有先后順序,必須一個先執行完成之后,另一個才能繼續執行, 只有一個主線
?
阻塞:從調用者的角度出發,如果在調用的時候,被卡住,不能再繼續向下運行,需要等待,就說是阻塞
?
非阻塞: 從調用者的角度出發, 如果在調用的時候,沒有被卡住,能夠繼續向下運行,無需等待,就說是非阻塞
?
同步 阻塞
?
異步 非阻塞
?
from multiprocessing import Pool
import time
import os
?
def water():
??? """燒水"""
??? print("子進程 pid=%d" % os.getpid())
??? for i in range(5):
??????? print("正在燒水中")
??????? time.sleep(0.5)
??? return "水燒開了"
?
defhandle_water(message):
??? """接收燒開水的信息"""
??? print("進程pid=%d 收到了異步任務的結束信息: %s" % (os.getpid(), message))
?
pool = Pool(3)
?
print("主進程 pid=%d" % os.getpid())
for i in range(3):
??? print("打游戲")
??? time.sleep(0.5)
?
??????????????????????? # 回調
pool.apply_async(water,callback=handle_water) ?# 異步添加任務
?
for i in range(20):
??? print("打游戲")
??? time.sleep(0.5)
?
pool.close()
pool.join()
?
總結
以上是生活随笔為你收集整理的python中的异步与同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 02085,OracleD
- 下一篇: python中的常见的列表操作及注意事项