我找不到与我的问题类似的东西。
我目前正在开发一个Thread threader函数。
我有两个队列,一个r_queue
用于常规,p_queue
用于优先级。
def _threader(self):
# Thread Handler
while self.active:
while self.p_queue.empty() and self.r_queue.qsize() > 0:
# Regular Queue
queue_dict = self.r_queue.get()
self._complete_task(queue_dict, prioritized=False)
(else?) while self.p_queue.qsize() > 0:
# Prioritized Queue
queue_dict = self.p_queue.get()
self._complete_task(queue_dict, prioritized=True)
我如何正确使用(else?)?
编辑:穿线器背后的想法是,它从队列接收数据并完成功能。第一个问题是它优先考虑优先级队列,并且仅在具有大小的情况下才调用。 (当它的None存在时,无法得到一些东西)我的问题是,我需要为优先级队列添加一个while循环(else?) while self.p_queue.qsize() > 0:
,但我不能直接使用其他。如果我愿意,如果队列大小为None,它将不断选择“Nothing”。像elif while self.p_queue.qsize() > 0
这样的东西,但不存在。
答案 0 :(得分:1)
您不需要内部while
循环,因为您可以使用:
def _threader(self):
# Thread Handler
while self.active:
if self.p_queue.qsize() > 0:
# Prioritized Queue
queue_dict = self.p_queue.get()
self._complete_task(queue_dict, prioritized=True)
elif self.r_queue.qsize() > 0:
# Regular Queue
queue_dict = self.r_queue.get()
self._complete_task(queue_dict, prioritized=False)