Python多线程同步中join方法的使用

2023-02-27 00:00:00 方法 多线程 同步

join() 方法是 Python 多线程编程中常用的一种同步机制。它的作用是等待所有线程执行完成,然后才继续执行主程序。具体来说,当一个线程调用了另一个线程的 join() 方法时,它会阻塞等待该线程执行完成,直到该线程退出或超时。

以下是一个简单的使用 join() 方法的示例代码:

import threading
import time

def worker():
    print('工作线程开始')
    time.sleep(2)
    print('工作线程结束')

threads = []
for i in range(5):
    t = threading.Thread(target=worker)
    t.start()
    threads.append(t)

# 等待所有线程执行完成
for t in threads:
    t.join()

print('所有工作线程执行完成')

在这个示例中,我们定义了一个工作函数 worker,它会打印开始和结束的信息,并在执行过程中等待 2 秒钟。然后创建了 5 个线程,启动并加入线程列表 threads。在主程序中,我们使用 join() 方法等待所有工作线程执行完成,然后输出所有线程执行完成的信息。

需要注意的是,当多个线程使用 join() 方法时,它们会按照加入线程列表的顺序执行,即先加入的线程先执行,后加入的线程后执行。同时,如果等待时间过长,也可能会导致程序卡住。因此,在使用 join() 方法时,需要根据实际情况进行调整。

相关文章