进程通信之事件Event
事件对象multiprocessing.Event-进程之间的状态标记通信。因为进程不共享数据,子进程是将主进程的数据拷贝一份来执行的并不是同一份数据,所以要将定义的事件作为参数传入函数才可以正常运行。
import multiprocessing
import time
event = multiprocessing.Event()
def xiao_fan(event):
print('生产...')
print('售卖...')
# time.sleep(1)
print('等待就餐')
event.set()
event.clear()
event.wait()
print('谢谢光临')
def gu_ke(event):
print('准备买早餐')
event.wait()
print('买到早餐')
print('享受美食')
# time.sleep(2)
print('付款,真好吃...')
event.set()
event.clear()
if __name__ == '__main__':
# 创建进程
xf = multiprocessing.Process(target=xiao_fan, args=(event,))
gk = multiprocessing.Process(target=gu_ke, args=(event, ))
# 启动进程
gk.start()
xf.start()
# time.sleep(2)
F:\win10software\Python36\python36.exe E:/Python1807/llf/进程/进程通信/事件.py
准备买早餐
生产…
售卖…
等待就餐
买到早餐
享受美食
付款,真好吃…
谢谢光临
Process finished with exit code 0