队列Queue
代码演示
from multiprocessing import Queue
#Queue带参数代表队列中元素个数,不加参数代表队列元素个数无限制
q = Queue(3)
q.put(123)
q.put([1, 2, 3])
q.put({'a': 1, 'b': 2, 'c': 3})
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#队列中可以加入任何元素,没有数据类型限制,队列先进先出
print(q.get())
print(q.get())
print(q.get())
#block默认值为True,当取出个数超出队列个数时,程序会挂起,等待元素加入队列,#如果超出元素个数设置block=False,则程序报错。
print(q.get(block=False))
print(q.get(block=True, timeout=3))
Process补充
from multiprocessing import Process
import os
def work():
print('%s I am here' % os.getpid())
if __name__ == '__main__':
p = Process(target=work, )
p.start()
p.terminate()
print(p.name)
print(p.is_alive())
使用terminate时要特别小心,在调用之前要查看该进程是否产生子进程,如果有子进程,谨慎调用,否则会产生僵尸进程