进程间彼此数据时隔离的,要实现进程间通信(IPC),multiprocess模块支持两种形式:队列和管道,这两种方式都使用消息传递的
创建队列的类(底层就是以管道和锁的方式实现):
Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。
但是需要明确:
1.队列内存放的是消息而非大数据
2.队列占用的是内存空间,因而maxsize即便是无大小限制也受到内存大小的限制
主要方法:
q.put()方法向队列中放数据
q.get()方法从队列中取数据(取走了就不会还回来了,所以可以理解从队列中读取并删除一个元素)
队列的使用:
from multiprocessing import Queue q = Queue(3) q.put(1) q.put(2) q.put(3) print(q.full()) # 满了 # q.put(4) # 再放就阻塞了 print(q.get()) print(q.get()) print(q.get()) print(q.empty()) # 空了 print(q.get()) # 再取就阻塞了
方法:put/get/put_nowait/get_nowait/full/empty