import Queue
import threading
import time
def work(q):
while True:
print threading.current_thread().getName() + ":" + str(time.clock())
yield q.get()
q.task_done()
def main():
q = Queue.Queue()
for i in range(10):
q.put(i)
for i in range(3):
t = threading.Thread(target=work, args=(q,))
t.daemon = True
t.start()
q.join()在本例中,如何使用由主线程启动的线程所编辑的数据yield?
以下是我要做的事:
yield中的数据。发布于 2015-09-13 08:09:39
你不能。工作线程不能是生成器。
线程必须是独立操作的函数;它们由threading.Thread()类启动,并从那里独立工作。在那里使用生成器对象没有什么意义。
在本质上,您正在尝试在这里混合并发模型。在线程中使用生成器是可以的,使用生成器作为线程是行不通的。使用队列或其他方式将结果传递回主线程。
https://stackoverflow.com/questions/32547638
复制相似问题