今天学习了队列阻塞,这个东西挺有意思的。现实生活中我们被阻塞在地铁,在编程世界里,我们来阻塞一下程序。想想就开心。
来代码吧。
from multiprocessing import Queue
q = Queue(3)
格式:put(self, obj, block=True, timeout=None)
q.put(1)
q.put(2)
q.put(3)
#q.put(4) # 由于默认状态为阻塞状态,程序将会阻塞在这里
参数block: 默认值为真,表示如果队列已经满,程序阻塞。
如果是False,表示不需要阻塞,如果队列已经满,将会抛出异常
参数timeout: 表示阻塞时间,单位为妙。
#q.put_nowait(5) 等价于q.put(5,block=False)
try:
q.put(4,block=True,timeout=2)
except:
print(‘消息队列已经满,当前现有消息:%s’%(q.qsize()))
推荐方式,先判断消息队列是否已经满了,再往里放
if not q.full():
q.put(6)
~~分割线~
取
格式: get(self, block=True, timeout=None)
q.get()
q.get()
q.get()
print(‘当前队列消息个数:%s’%(q.qsize()))
学习使我充实,学习让我快乐。在知识的海洋扬帆起航。