[英]Python Threading: Continuing a thread until other thread ends
这是我的代码:
import threading
import time
class Threadd(threading.Thread):
def main(self):
time.sleep(4)
print("One")
self.var = True
return self.var
def threadmain():
print("Foo")
threadobj = Threadd()
threadd = threading.Thread(target=threadobj.main)
threadd.start()
time.sleep(5)
print("Done")
mainthread = threading.Thread(target=threadmain)
mainthread.start()
我需要“主线程”继续运行直到“线程”完成,我该怎么做?
等待子线程退出的方法是让主线程/父线程在子线程上调用join()
。 join()
会阻塞直到子线程退出,所以在join()
返回后你知道子线程已经消失并且可以安全地继续。 这是一个示例用法:
import threading
import time
class Threadd(threading.Thread):
def main(self):
print("Child thread starts running")
time.sleep(4)
self.var = True
print("Child thread is done running")
return self.var
print("Main thread launching child thread")
threadobj = Threadd()
threadd = threading.Thread(target=threadobj.main)
threadd.start()
print("Main thread waiting for child thread to exit...")
threadd.join()
print("Child thread exited, so we can exit too -- bye!")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.