线程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、子线程与守护线程实例详解相关推荐

  1. python脚本例子_python dict 字典 以及 赋值 引用的一些实例(详解)

    最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东 用的最多的还是 list 和 tuple (网上查 用法一大堆) 看了一下创建字典 ...

  2. python密码教程_Python实现密钥密码(加解密)实例详解

    密钥密码 """ 如密钥短语密码为: university -> universty 明文: abcdefghijklmnopqrstuvwxyz 密文:jklmo ...

  3. wxpython多线程 假死_wxpython多线程防假死与线程间传递消息实例详解

    wxpython中启用线程的方法,将GUI和功能的执行分开. 网上关于python多线程防假死与线程传递消息是几年前的,这里由于wxpython和threading模块已经更新最新,因此给出最新修改代 ...

  4. java condition详解_Java使用Condition控制线程通信的方法实例详解

    Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...

  5. python 录制web视频_Python django框架 web端视频加密的实例详解

    视频加密流程图: 后端获取保利威的视频播放授权token,提供接口api给前端 参考文档:http://dev.polyv.net/2019/videoproduct/v-api/v-api-play ...

  6. python基础语法手册format-python的格式化输出(format,%)实例详解

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...

  7. java 线程组和线程_Java多线程 线程组原理及实例详解

    线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...

  8. python贪婪匹配_python re模块匹配贪婪和非贪婪模式详解

    python re模块匹配贪婪和非贪婪模式详解 这篇文章主要介绍了python re模块匹配贪婪和非贪婪模式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友 ...

  9. python 字符串替换_Python基础教程,第四讲,字符串详解

    本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...

  10. python转盘抽奖_Python使用Tkinter实现转盘抽奖器的步骤详解

    我使用 Python 中的 Tkinter 模块实现了一个简单的滚动抽奖器,接下来继续写一个简单的转盘抽奖器. 滚动抽奖器与点名的场景相似,是从一群人中抽出中奖的人,奖品是提前确定了的,抽奖只是确定中 ...

最新文章

  1. 原创 | 电视广告流量预测中的“常识”陷阱,你掉进去了吗?
  2. XCTF WEB command_execution
  3. python sum 数组原理_Python - Sum 4D数组
  4. 哈夫曼编码的非树节点形式实现
  5. 2018第三届中国数字化零售创新国际峰会9月即将震撼来袭
  6. jitter 如何优化网络_如何做好关键词优化网络?
  7. ajax post 与get方法 data写法
  8. U盘安装服务器2008系统蓝屏,U盘安装系统造成蓝屏如何解决
  9. 虚幻引擎UE4源码编译安装(x86,arm64平台)
  10. bat文件批量创建文件夹
  11. 基于RK3399PRO的蜂鸣器驱动移植文档
  12. python调用scp上传目录_python执行scp命令拷贝文件及文件夹到远程主机的目录方法...
  13. Win10系统C++调用OpenCV实现网络摄像头录像和抓拍图片
  14. 贝加莱工控机维修主板维修5PC600.SX01-00常见故障排查
  15. 项目经理如何更好的理清和管理项目需求?
  16. knife4j的使用
  17. c语言经典程序100例 九宫格,9X9,九宫格测试,C编程。
  18. Windows10怎么显示我的电脑
  19. 全手工制作WIN8PE,WIN7PE 教程——不用ADK/AIK/Winbuilder/MakePE
  20. 普通数据改为onehot编码,onehot转换为普通数据

热门文章

  1. vc 限制软件的使用次数或时间
  2. 1.26 Java使用自定义包
  3. 两种交换排序算法:冒泡排序和快速排序
  4. Acwing第 32 场周赛【完结】
  5. Acwing第 23 场周赛【完结】
  6. 1074 Reversing Linked List (25 分)【难度: 一般 / 知识点: 链表】
  7. Dubbo服务降级配置
  8. python设置ini文件中的值_PyCharm设置python文件模板,自动读取文件信息。
  9. lenovo服务器换系统重装系统_如何给lenovo电脑重装系统 lenovo电脑重装系统步骤...
  10. axios get怎么还会显示跨域_在Vue中如何使用axios跨域访问数据