我有一个跨进程的队列,通常是空的,只有偶尔会出现一些东西。在我的一个线程中,我想定义一个while循环,像这样:
def mythread(queue1):
while (queue1.get_nowait() != 1):
#do stuff
这个方法在队列非空的情况下运作得很好,但是在我的情况下队列很快就为空了。当队列为空时,调用get_nowait()或get(False)会引发空队列异常。是否有一种不会阻塞且不会引发空异常的方法来检查队列?
我有一个跨进程的队列,通常是空的,只有偶尔会出现一些东西。在我的一个线程中,我想定义一个while循环,像这样:
def mythread(queue1):
while (queue1.get_nowait() != 1):
#do stuff
这个方法在队列非空的情况下运作得很好,但是在我的情况下队列很快就为空了。当队列为空时,调用get_nowait()或get(False)会引发空队列异常。是否有一种不会阻塞且不会引发空异常的方法来检查队列?
使用 empty
方法
if queue1.empty():
pass
else:
# get items from the queue
pass
什么也不做?那为什么不用 if not queue1.empty(): ...
呢? - slayernot queue1.empty()
。 - Jean-François Fabre