进程间通信=IPC机制 管道 占用内存空间 队列=管道+锁 占用内存空间 先进先出 应该存放小数据 from multiprocessing import Queueq =Queue() # 如果放的个数小于put的个数就会阻塞住 q.put([ ‘ first ‘
进程间通信=>IPC机制
管道 占用内存空间
队列=管道+锁 占用内存空间 先进先出 应该存放小数据
from multiprocessing import Queue q=Queue() #如果放的个数小于put的个数就会阻塞住 q.put([‘first‘,]) q.put({‘x‘:2}) q.put(3) q.put(4) print(q.get()) print(q.get()) print(q.get()) print(q.get()) 结果: [‘first‘] {‘x‘: 2} 3 4队列
from multiprocessing import Queue q=Queue(3) q.put([‘first‘,],block=True,timeout=3) #block=True 队列满的时候锁 q.put({‘x‘:2},block=True,timeout=3) #timeout 超时时间,超过时间停止进程 q.put(3,block=True,timeout=3) # 等 print(q.get(block=True,timeout=3)) print(q.get(block=True,timeout=3)) print(q.get(block=True,timeout=3)) print(q.get(block=True,timeout=3)) 结果: [‘first‘] {‘x‘: 2} 3 后面会报错,没有数据了,把取的第四行注释掉就好了对列 等
from multiprocessing import Queue q=Queue(3) q.put_nowait(1) #q.put(1,block=False) q.put_nowait(2) q.put_nowait(3) #不等 print(q.get_nowait()) #q.get(block=false) print(q.get_nowait()) #q.get(block=false) print(q.get_nowait()) #q.get(block=false) print(q.get_nowait()) #q.get(block=false) 结果: 1 2 3 没有等待时间队列 不等