python线程同步

2024-09-27 18:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python应用程序,如下所示:

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

=>;如何让GUI知道所有这些“独立线程”(3.)都已完成?我如何在我的程序中检测到它(只要告诉我大致的想法)

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

PS所有这些线程都是PyQt中的QThreads,如果这有什么重要的话,但我对此表示怀疑。在

谢谢


Tags: gt程序应用程序gui逻辑线程主线pyqt
1条回答
网友
1楼 · 发布于 2024-09-27 18:20:12

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

相关问题 更多 >

    热门问题