Python进程间通信进程间通信 multiProcessing Queue队列实现详解队列实现详解
一、进程间通信一、进程间通信
IPC(Inter-Process Communication)
IPC机制:实现进程之间通讯
管道:pipe 基于共享的内存空间
队列:pipe+锁的概念—>queue
二、队列二、队列(Queue)
2.1 概念概念—–multiProcess.Queue
创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。
Queue([maxsize])创建共享的进程队列。
参数 :maxsize是队列中允许的最大项数。如果省略此参数,则无大小限制。
底层队列使用管道和锁定实现。
2.2 Queue方法使用方法使用
2.2.1 q.get的使用:
是从队列里面取值并且把队列面的取出来的值删掉,没有参数的情况下就是是默认一直等着取值
就算是队列里面没有可取的值的时候,程序也不会结束,就会卡在哪里,一直等着
from multiprocessing import Queue
q = Queue() # 生成一个队列对象
# put方法是往队列里面放值
q.put('Cecilia陈')
q.put('xuchen')
q.put('喜陈')
# get方法是从队列里面取值
print(q.get())
print(q.get())
print(q.get())
q.put(5)
q.put(6)
print(q.get())
Cecilia陈
xuchen
喜陈
5
2.2.2 Queue(参数) +参数的使用:
Queue加参数以后,参数是数值
参数实几就表示实例化的这个Queue队列可以放几个值
当队列已经满的时候,再放值,程序会阻塞,但不会结束
from multiprocessing import Queue
q = Queue(3)
q.put('Cecilia陈')
q.put('xuchen')
q.put('喜陈')
print(q.full()) # 判断队列是否满了 返回的是True/False
q.put(2) # 当队列已经满的时候,再放值,程序会阻塞,但不会结束
评论0