python - Python线程:继续一个线程直到另一个线程结束
问题描述
这是我的代码:
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!")
推荐阅读
- python - 当我灌封数据'str'对象没有属性'update'时它显示错误
- eclipse-plugin - Eclipse 自定义小部件,如“大纲”或“帮助”
- callback - 我们可以暂停一个 azure devops 代理作业并等待回调吗
- winapi - GDI+ FillPolygon 包括左侧和顶部轮廓?
- javascript - 反应组件上的CSS转换
- jhipster - Jhipster-UML 花费太多时间来生成 jdl 文件
- wso2is - WSO2is SCIM2 过滤器企业属性
- ansible - 在 ansible 中使用 ios_config 时出现错误 ""module_stdout": "", "msg": "MODULE FAILURE\n请参阅 stdout/stderr 了解确切的错误", "rc": 1}"
- sql-server - 连接不同的行数据
- react-native - 如何在本机反应中添加千位分隔符