Python - 如何通知线程已完成另一个类?

时间:2013-03-21 05:30:00

标签: python multithreading pygtk

我正在使用一个线程进行定时计数(以及在PyGTK窗口中刷新内容)。它位于一个可以改变其范围的循环内。在每次迭代结束时,计数器增加并打印数据。我想要做的是在每个滴答结束时在另一个班级收到一个爆炸及其数据。

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

1 个答案:

答案 0 :(得分: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

要获得更好的答案,您需要发布更多细节。