我有一个这样的python应用程序:
=>我怎样才能让GUI知道所有这些“独立线程”(3.)已经完成了?我如何在我的程序中检测到它(只是给我一般的想法)
我知道Semaphores但是我无法理解它,因为这比我在处理线程时习惯的更复杂一些。
PS所有这些线程都是来自PyQt的QThreads,如果它有任何重要性,但我对此表示怀疑。
感谢
答案 0 :(得分:1)
Queue module非常适合在线程之间进行通信,而不必担心锁或其他互斥锁。它具有一对方法,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