进程的定义作用已经在其他文章中讲过,这里谈一谈进程之间的通信问题。
一: 队列(Queue)
可以使用multiprocessing模块的Queue实现多进程之间的数据传递
下面是一个具体的实现栗子,演示一下Queue的工作原理:
from multiprocessing import Queue
# 创建容量为3的队列
q = Queue(3)
q.put('message1')
q.put('message2')
print(q.full())
q.put('message3')
print(q.full())
try:
q.put('message4',True,2)
except:
print('message queue was full, the num of message: %s' % q.qsize())
try:
q.put_nowait('message4')
except:
print('message was full, the num of message: %s'%q.qsize())
if not q.full():
q.put_nowait('message4')
if not q.empty():
for i in range(q.qsize()):
print(q.get_nowait())
运行结果:
False
True
message was full, the num of message:3
message was full, the num of message:3
message1
message2
message3
说明
初始