消息队列阻塞基础

from multiprocessing import Queue
q=Queue(3)
#格式:put(self, obj, block=True, timeout=None)
#参数:block,指阻塞,默认为真,表示如果队列已满,程序已满,
##如果为False,表示不需要阻塞,如果队列已满,将会派出异常
#timeout:表示阻塞时间,单位为秒。
q.put(1)
q.put(2)
q.put(3)

q.put(4)#block指阻塞,由于默认阻塞状态,4程序将会阻塞在这里不运行

try:
# q.put(4,block=False)
q.put(4, block=True,timeout=2)#如果阻塞,等两秒才会运行
except:
print(“消息队列已满,现有消息数量:%s”%(q.qsize()))
print("`````````````")

#put的另一种形式
#q.put_nowait()强塞,等价于q.put(5,block=False)
try:
q.put_nowait(5)
except:
print(“消息队列已满,现有消息数量:%s” % (q.qsize()))

#推荐方式:先判断消息队列是否已满,再放对象
if not q.full():
q.put(6)

#``````````````````````````````````````````````````````````
#----------取---------------------------
#格式:get(block=True,timeout=None)
q.get()
q.get()
q.get()
print(“当前队列的状态:%s”%(q.qsize()))
#推荐方式:先判断消息队列是否为空,再取对象
if not q.empty():
q.get() #如果队列为空,一直阻塞
print("``````````````````````````")
#取的另一种写法
q.get_nowait()#强取,等价于q.get(block=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值