2013-03-21 21 views
1

我正在使用一个线程来执行定时计数(并在PyGTK窗口中刷新的东西)。它在一个可以改变其范围的循环内。在每次迭代结束时,计数器增加并打印数据。我想要做的是在每次打勾结束时在另一个班级接收爆炸及其数据。Python - 我如何通知线程已经完成到另一个类?

可能解决方案与套接字有关,但到目前为止,我试图避免这种情况,那么实现此目的的最佳方法是什么?

+0

是这样的适用? http://stackoverflow.com/questions/676485/are-there-any-build-in-cross-thread-events-in-python – minikomi 2013-03-21 05:34:26

回答

4

最常见的解决方案在线程之间传递对象是使用Queue模块:

import threading 
import Queue 
import time 

def Worker(queue, n): 
    for i in range(n): 
     time.sleep(i/10.0) 
     queue.put([i] * i) 

q = Queue.Queue() 
thread = threading.Thread(target=Worker, args=(q, 10)) 
thread.start() 

results = 10 
while results > 0: 
    print q.get() 
    results -= 1 

对于一个更好的答案,你需要发布更多细节。

相关问题