0

我有一个这样的python应用程序:

  1. 主线程是GUI
  2. 甚至在 GUI 之前就启动了一个配置线程
  3. 配置线程启动其他几个独立线程

=> 我怎样才能让 GUI 知道所有这些“独立线程”(3.)已经完成?我如何在我的程序中检测到它(只是给我一个大致的想法)

我知道信号量,但我想不通,因为这在逻辑上比我在处理线程时习惯的要复杂一些。

PS如果这很重要,所有这些线程都是来自PyQt的QThreads,但我对此表示怀疑。

谢谢

4

1 回答 1

1

Queue 模块非常适合在线程之间进行通信,而无需担心锁或其他互斥锁。它具有一对方法,task_done() 和 join(),用于发出任务完成的信号并等待所有任务完成。这是文档中的一个示例:

def worker():
    while True:
        item = q.get()
        do_work(item)
        q.task_done()

q = Queue()
for i in range(num_worker_threads):
     t = Thread(target=worker)
     t.daemon = True
     t.start()

for item in source():
    q.put(item)

q.join()       # block until all tasks are done
于 2012-04-19T22:03:58.647 回答