导语:
本文主要介绍了关于python多线程编程怎么退出的相关知识,包括python 结束程序,以及python中的多线程这些编程知识,希望对大家有参考作用。
退出python多线程编程的方法是在启动线程之前将属性[daemon]设置为“True”。即当父进程结束时,所有子进程也结束。
首先补充一个知识点
daemon:
一个布尔值,指示此线程是否为守护线程 (true) (false)。此参数必须在 start() 调用之前设置,否则会引发 RuntimeError。它的初始值是从创建线程继承而来的;主线程不是守护线程,所以在主线程中创建的所有线程默认为daemon=False。当没有活动的非守护线程时,整个 Python 程序退出。
只要在启动线程之前将此属性设置为True,当父进程结束时,所有子进程也结束。
接下来我们一起看看代码部分举例:
import threading,time,random
class Sea:
def __init__(self):
self.__sea = 0
def m(self,i):
# 随机时间进行打印
time.sleep(random.random()*2)
print(i)
if i == 1:
self.__sea = 1
def main(self):
Threads = []
# 将会启动10个线程,线程id为 1 时全部线程终止!
for i in range(10):
t = threading.Thread(target=self.m,args=(i,))
t.daemon = 1
Threads.append(t)
# 启动所有线程
for i in Threads:
i.start()
# 当标志位【 sea 】时所有多线程结束
while 1:
if self.__sea:
break
print('线程已退出!')
Sea().main()
# 继续执行后续程序
for i in range(5):
print('yeah!')
此时的主要功能是多线程的父进程,即守护进程。预计会进行10个循环的数字印刷,但是当self.__sea标志为真时,将不会执行所有剩余的子线程,直接结束后续操作。
结果如下:
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python中slice的三个参数10/22
- ♥ Python脚本绘制验证码11/23
- ♥ python合并多个excel文件09/19
- ♥ python pip无法安装怎么办01/01
- ♥ python如何按换行符分割09/03
- ♥ python3中如何实现字符串对齐?01/02
内容反馈