python守护多线程_Python多线程Threading、子线程与守护线程实例详解
线程Threading:
python中多线程需要使用threading模块
线程的创建与运行:
1.直接调用threading的Thread类:
线程的创建:线程对象=thread.Thread(target=函数名,args=(参数))【补充,由于args是一个元组,单个参数时要加“,”】
线程的启动:线程对象.start(),调用start(),那么线程对象会自动去调用thread.Thread中的run()
让主线程等待其余线程结束:线程对象.join(),加了join之后,相当于阻塞了主线程,主线程只有当join的线程结束后才会向下执行
import threading,time
def run(n):
time.sleep(1)
print("task ",n)
t1=threading.Thread(target=run,args=("t1",))
t2 = threading.Thread(target=run,args=("t2",))
start_time=time.time()#开始时间
t1.start()
t2.start()
##因为是独立线程,如果想要主线程等待其他线程运行完毕,需要使用join
t1.join()
t2.join()
spend_time=time.time()-start_time
print(spend_time)##1.0多,说明是并行的结果
附加说明--join是阻塞等待:
import threading,time
class MyTread(threading.Thread):
def __init__(self,name):
super(MyTread,self).__init__()#调用父类的__init__()
self.name=name
def run(self):#重写方法,按自己的要求去写
time.sleep(1)
print("run in task",self.name,threading.current_thread(),threading.active_count())
t1=MyTread("t1")
t2=MyTread("t2")
start_time=time.time()
t1.start()
t2.start()
t1.join()
t2.join()
time.sleep(1)###主线程等待其余线程结束
print(time.time()-start_time)
#结果是2.0多,证明是join是相当于阻塞了主线程的执行,只有当线程结束后才会向下执行
2.继承threading的Thread类:
继承threading的Thread类的类要主要做两件事:
1.如果不做自定义变量的初始化,那么可以直接使用继承的父类的__init__(),如果需要做自定义变量的初始化,则需要先调用父类的__init__()【否则需要自己填写线程初始化相关的参数】
2.重写run,虽然继承了父类的run,但实际上如果不重写,那么我们继承threading的Thread类又有什么意义呢?为什么不直接调用threading的Thread类
python守护多线程_Python多线程Threading、子线程与守护线程实例详解相关推荐
- python脚本例子_python dict 字典 以及 赋值 引用的一些实例(详解)
最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东 用的最多的还是 list 和 tuple (网上查 用法一大堆) 看了一下创建字典 ...
- python密码教程_Python实现密钥密码(加解密)实例详解
密钥密码 """ 如密钥短语密码为: university -> universty 明文: abcdefghijklmnopqrstuvwxyz 密文:jklmo ...
- wxpython多线程 假死_wxpython多线程防假死与线程间传递消息实例详解
wxpython中启用线程的方法,将GUI和功能的执行分开. 网上关于python多线程防假死与线程传递消息是几年前的,这里由于wxpython和threading模块已经更新最新,因此给出最新修改代 ...
- java condition详解_Java使用Condition控制线程通信的方法实例详解
Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...
- python 录制web视频_Python django框架 web端视频加密的实例详解
视频加密流程图: 后端获取保利威的视频播放授权token,提供接口api给前端 参考文档:http://dev.polyv.net/2019/videoproduct/v-api/v-api-play ...
- python基础语法手册format-python的格式化输出(format,%)实例详解
皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...
- java 线程组和线程_Java多线程 线程组原理及实例详解
线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...
- python贪婪匹配_python re模块匹配贪婪和非贪婪模式详解
python re模块匹配贪婪和非贪婪模式详解 这篇文章主要介绍了python re模块匹配贪婪和非贪婪模式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友 ...
- python 字符串替换_Python基础教程,第四讲,字符串详解
本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...
- python转盘抽奖_Python使用Tkinter实现转盘抽奖器的步骤详解
我使用 Python 中的 Tkinter 模块实现了一个简单的滚动抽奖器,接下来继续写一个简单的转盘抽奖器. 滚动抽奖器与点名的场景相似,是从一群人中抽出中奖的人,奖品是提前确定了的,抽奖只是确定中 ...
最新文章
- 原创 | 电视广告流量预测中的“常识”陷阱,你掉进去了吗?
- XCTF WEB command_execution
- python sum 数组原理_Python - Sum 4D数组
- 哈夫曼编码的非树节点形式实现
- 2018第三届中国数字化零售创新国际峰会9月即将震撼来袭
- jitter 如何优化网络_如何做好关键词优化网络?
- ajax post 与get方法 data写法
- U盘安装服务器2008系统蓝屏,U盘安装系统造成蓝屏如何解决
- 虚幻引擎UE4源码编译安装(x86,arm64平台)
- bat文件批量创建文件夹
- 基于RK3399PRO的蜂鸣器驱动移植文档
- python调用scp上传目录_python执行scp命令拷贝文件及文件夹到远程主机的目录方法...
- Win10系统C++调用OpenCV实现网络摄像头录像和抓拍图片
- 贝加莱工控机维修主板维修5PC600.SX01-00常见故障排查
- 项目经理如何更好的理清和管理项目需求?
- knife4j的使用
- c语言经典程序100例 九宫格,9X9,九宫格测试,C编程。
- Windows10怎么显示我的电脑
- 全手工制作WIN8PE,WIN7PE 教程——不用ADK/AIK/Winbuilder/MakePE
- 普通数据改为onehot编码,onehot转换为普通数据
热门文章
- vc 限制软件的使用次数或时间
- 1.26 Java使用自定义包
- 两种交换排序算法:冒泡排序和快速排序
- Acwing第 32 场周赛【完结】
- Acwing第 23 场周赛【完结】
- 1074 Reversing Linked List (25 分)【难度: 一般 / 知识点: 链表】
- Dubbo服务降级配置
- python设置ini文件中的值_PyCharm设置python文件模板,自动读取文件信息。
- lenovo服务器换系统重装系统_如何给lenovo电脑重装系统 lenovo电脑重装系统步骤...
- axios get怎么还会显示跨域_在Vue中如何使用axios跨域访问数据