【发布时间】:2022-06-15 00:23:30
【问题描述】:
我对 python 和线程很陌生。我的目标是拥有一个永久运行的主线程和依赖于另一个的其他线程。我用.join() 尝试了不同的东西,但我无法得到答案。
这是我想到的一张图片: Thread Imagination
我是否需要守护进程之类的东西,或者我可以通过简单的.join() 来解决这个问题吗?
【问题讨论】:
标签: python-3.x multithreading python-multithreading
我对 python 和线程很陌生。我的目标是拥有一个永久运行的主线程和依赖于另一个的其他线程。我用.join() 尝试了不同的东西,但我无法得到答案。
这是我想到的一张图片: Thread Imagination
我是否需要守护进程之类的东西,或者我可以通过简单的.join() 来解决这个问题吗?
【问题讨论】:
标签: python-3.x multithreading python-multithreading
试试这个结构:
from threading import Thread
from time import sleep
def do_work_1():
print("Thread 1 starting")
sleep(1)
print("Thread 1 done")
def do_work_2(parent_thread):
print("Thread 2 wait thread 1 to finish")
parent_thread.join()
print("Thread 2 starting")
sleep(1)
print("Thread 2 done")
def do_work_3(parent_thread):
print("Thread 3 wait thread 2 to finish")
parent_thread.join()
print("Thread 3 starting")
sleep(1)
print("Thread 3 done")
thread1 = Thread(target=do_work_1)
thread2 = Thread(target=do_work_2, args=(thread1,)) # Do not miss the comma!
thread3 = Thread(target=do_work_3, args=(thread2,))
thread1.start()
thread2.start()
thread3.start()
【讨论】: