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中单线程、多线程和多进程的效率对比实验实例)
- python多进程与多线程详解(Python线程之定位与销毁的实现)
- python计算csv的行数(对Python 多线程统计所有csv文件的行数方法详解)
- laravel多线程处理请求(Laravel 6 将新增为指定队列任务设置中间件的功能)
- python中的多线程详解(python多线程抽象编程模型详解)
- python多线程有两个参数怎么传(python从子线程中获得返回值的方法)
- ftp上传工具使用方法(CuteFTP多线程FTP上传下载工具功能介绍)
- python线程池有几种(对python 多线程中的守护线程与join的用法详解)
- python开启多线程(python 多线程重启方法)
- php怎么实现多线程(PHP实现的多进程控制demo示例)
- python多线程多进程运行场景(Python多线程同步---文件读写控制方法)
- python关闭程序强制退出线程(python多线程调用exit无法退出的解决方法)
- python多线程超时设置(解决python线程卡死的问题)
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- python 多线程与多进程(python 多线程串行和并行的实例)
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
- 网友抵制 多地取消 夏日祭 为何惹众怒(网友抵制多地取消)
- 兄弟萌,今年的七夕又取消了 思考 思考(今年的七夕又取消了)
- 七夕取消是什么梗(七夕取消是什么梗)
- 这竟然是捏出来的 20种橡皮泥玩法让你轻松hold住魔娃(这竟然是捏出来的)
- 自制橡皮泥(自制橡皮泥)
热门推荐
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- linux常用的参数类型和参数代码(浅析Linux resolv.conf)
- windows docker 使用数据库教程(docker安装并持久化postgresql数据库的操作步骤)
- bootstraptable使用教程(bootstrap Table的使用方法总结)
- js基础入门运算符(js 可选链操作符的使用)
- mysql重新安装失败
- sql server 报错(sql server利用不同语种语言显示报错错误消息的方法示例)
- laravel的api验证失败重定向(Laravel的Auth验证Token验证使用自定义Redis的例子)
- jQuery商品属性选择的实现
- mysql数据表实例教程(mysql数据库入门第一步之创建表)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9