赞
踩
异步: 多任务, 多个任务之间执行没有先后顺序,可以同时运行,执行的先后顺序不会有什么影响,存在的多条运行主线
同步: 多任务, 多个任务之间执行的时候要求有先后顺序,必须一个先执行完成之后,另一个才能继续执行, 只有一个主线
阻塞:从调用者的角度出发,如果在调用的时候,被卡住,不能再继续向下运行,需要等待,就说是阻塞
非阻塞: 从调用者的角度出发, 如果在调用的时候,没有被卡住,能够继续向下运行,无需等待,就说是非阻塞
同步 阻塞
异步 非阻塞
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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。