知行编程网知行编程网  2022-09-28 16:30 知行编程网 隐藏边栏  244 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python多线程编程怎么退出的相关知识,包括python 结束程序,以及python中的多线程这些编程知识,希望对大家有参考作用。

退出python多线程编程的方法是在启动线程之前将属性[daemon]设置为“True”。即当父进程结束时,所有子进程也结束。

如何退出python多线程编程



首先补充一个知识点


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多线程编程

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享