python线程池有几种(对python 多线程中的守护线程与join的用法详解)
类别:脚本大全 浏览量:403
时间:2022-01-28 01:13:15 python线程池有几种
对python 多线程中的守护线程与join的用法详解多线程:在同一个时间做多件事
守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.setDaemon(True),要在thread.start()之前设置,默认是false的,也就是主线程结束时,子线程依然在执行。
thread.join():在子线程完成运行之前,该子线程的父线程(一般就是主线程)将一直存在,也就是被阻塞
实例:
|
#!/usr/bin/python # encoding: utf-8 import threading from time import ctime,sleep def func1(): count = 0 while ( True ): sleep( 1 ) print 'fun1 ' ,count count = count + 1 def func2(): count = 0 while ( True ): sleep( 2 ) print 'fun2 ' ,count count = count + 1 threads = [] t1 = threading.Thread(target = func1) threads.append(t1) t2 = threading.Thread(target = func2) threads.append(t2) if __name__ = = '__main__' : for t in threads: t.setDaemon( True ) t.start() |
上面这段程序执行后,将不会有任何输出,因为子线程还没来得及执行,主线程就退出了,子线程为守护线程,所以也就退出了。
修改后的程序:
|
#!/usr/bin/python # encoding: utf-8 import threading from time import ctime,sleep def func1(): count = 0 while ( True ): sleep( 1 ) print 'fun1 ' + str (count) count = count + 1 def func2(): count = 0 while ( True ): sleep( 2 ) print 'fun2 ' + str (count) count = count + 1 threads = [] t1 = threading.Thread(target = func1) threads.append(t1) t2 = threading.Thread(target = func2) threads.append(t2) if __name__ = = '__main__' : for t in threads: t.setDaemon( True ) t.start() t.join() |
可以按照预期执行了,主要join的调用要加在循环外,不然程序只会执行第一个线程。
print 的部分改成+,是为了避免输出结果中出现类似fun1 fun2 49 这种情况,这是由于程序执行太快,用‘,'间隔相当于执行了两次print ,在这期间另一个线程也执行了print,所以导致了重叠。
以上这篇对python 多线程中的守护线程与join的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/thn_sweety/article/details/53539873
您可能感兴趣
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- linux多线程怎么设置(超详细讲解Linux C++多线程同步的方式)
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- python多线程并发使用场景(对python多线程SSH登录并发脚本详解)
- python多线程多种方法(详解python多线程之间的同步一)
- phpcurl请求能在日志里记录吗(php使用curl模拟多线程实现批处理功能示例)
- php怎么实现多线程(PHP实现的多进程控制demo示例)
- php脚本控制方法(php swoole多进程/多线程用法示例基于php7nts版)
- python多线程有两个参数怎么传(python从子线程中获得返回值的方法)
- python线程池有几种(对python 多线程中的守护线程与join的用法详解)
- python中的多线程详解(python多线程抽象编程模型详解)
- 如何学会python多线程(Python3多线程基础知识点)
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- python开启多线程(python 多线程重启方法)
- python计算csv的行数(对Python 多线程统计所有csv文件的行数方法详解)
- python 多线程与多进程(python 多线程串行和并行的实例)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
- 新手的勾线(新手的勾线)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9