如何杀死所有Greenlets或结束"而不是Queue.empty()"环?

时间:2015-11-17 13:57:06

标签: python python-2.7 while-loop queue gevent

如何在不使用sys.exit()的情况下结束Gevent? 我不需要完成列表中的所有元素,我只需要使用队列直到找到一个字符串。

tasks = Queue()
while not tasks.empty():
            string = tasks.get()
            con = validate(string)
            if con == True:
                break

Break语句不起作用。 我正在这样开始Greenlets:

gevent.spawn(worker) 

我无法使用sys.exit(),因为我想通过列表进行迭代并为每个对象启动一个新的Gevent实例。

1 个答案:

答案 0 :(得分:0)

我不熟悉python,但尝试使用布尔值作为while循环的额外条件:

tasks = Queue()
found = False
while not found and not tasks.empty():
    string = tasks.get()
    found = validate(string)