本人github
在Python的多线程(threading
)和多进程(multiprocessing
)编程中,join()
方法用于等待线程或进程完成执行。当你调用一个线程或进程的join()
方法时,调用它的线程(通常是主线程)会被阻塞,直到被join()
的线程或进程完成执行。
在多线程中使用join
:
import threading
def my_function():
print("Thread is running")
# 创建两个线程,它们将运行my_function
t1 = threading.Thread(target=my_function)
t2 = threading.Thread(target=my_function)
# 启动线程
t1.start()
t2.start()
# 等待两个线程完成
t1.join()
t2.join()
print("Both threads have finished")
在这个例子中,t1.join()
和t2.join()
确保主线程会等待t1
和t2
线程完成执行后再继续。因此,"Both threads have finished"这句话只会在两个子线程都完成执行后才会打印。
在多进程中使用join
:
from multiprocessing import Process
def my_function():
print("Process is running")
# 创建两个进程,它们将运行my_function
p1 = Process(target=my_function)
p2 = Process(target=my_function)
# 启动进程
p1.start()
p2.start()
# 等待两个进程完成
p1.join()
p2.join()
print("Both processes have finished")
在这个例子中,p1.join()
和p2.join()
确保主进程会等待p1
和p2
进程完成执行后再继续。
使用join()
方法是一种常见的同步机制,确保在继续执行其他任务之前完成某些特定的线程或进程。