python threading_Python threading的使用方法解析
一、 例子:我们对传参是有要求的必须传入一个元组,否则报错
import _thread as thread
import time
def loop1(in1):
print("Start loop 1 at:", time.ctime())
print("我是参数", in1)
time.sleep(4)
print("End loop 1 at:", time.ctime())
def loop2(in1, in2):
print("Start loop 2 at:", time.ctime())
print("我是参数", in1, "和参数 ", in2)
time.sleep(4)
print("End loop 1 at:", time.ctime())
def main():
print("Starting at:", time.ctime())
thread.start_new_thread(loop1, ("liuming", ))
# 上面我们传参的时候, 我用的是:(“ liuming”), 这里面是没有逗号的, 结果编译报错, 告诉我, 这里面必须传入元组
# 因此, 我才在里面加了一个逗号, 使其变成一个元组
thread.start_new_thread(loop2, ("zhanglei", "liuhao"))
print("All done at:", time.ctime())
if __name__ == "__main__":
main()
while True:
time.sleep(10)
二、threading的使用
直接利用threading.Thread生成Thread的实例
格式:
t= threading.Thread(target=函数体,args=(,))#参数args要传递元组
t.start()#启动多线程
t.join()#等待多线程执行完成
def main():
print("Start at :", time.ctime())
t1 = threading.Thread(target = loop1, args = ("王老大", ))
t1.start()# 启动多线程
t2 = threading.Thread(target = loop2, args = ("孙子", "好吗"))
t2.start()
t1.join()
t2.join()
print("End at :", time.ctime())
if __name__ == "__main__":
main()
从上面可以看出来,我们启动了两个线程,但是这两个线程执行完了才打印最后一个结束语句。
2.守护线程
格式:线程.setDaemon(True)
作用:
(1)如果在程序中将子线程设置为守护线程,则子线程会在主线程结束的时候自动退出;
(2)一般认为,守护线程不重要或者不允许脱离子线程而独立运行;
(3)守护线程能否有效果和环境有关系
注意点:该语句一定要写在start语句之前,否则就会把子程序无限时间挂起,运行报错,如:
def fun():
print("Start fun")
time.sleep(2)
print("End fun")
print('Main thread')
t3 = threading.Thread(target = fun, args = ())
t3.setDaemon(True)
t3.start()
time.sleep(1)
print("Main thread End")
解释:我们可以看出主线程结束后(即打印完了”Main thread End")后,我们的子线程的最后一个打印没有出来,程序就结束了,说明主线程结束,子线程无论执行到哪里都会被kill掉,和我们的预期一样。
三、源码
d24_2_usage_of_threading.py
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python threading_Python threading的使用方法解析相关推荐
- python threading_Python threading
最新项目 命名线程 这是一种将python中设置的线程名传播到系统的技巧. warning:这仅用于测试/调试目的.不要在生产中运行. 问题 您可以用python命名线程,如下所示: import t ...
- python类中方法的执行顺序-python – 新式类中的方法解析顺序(MRO)?
在Python in a Nutshell(第2版)一书中有一个使用的例子 旧样式类,用于演示如何以经典分辨率顺序解析方法 它与新订单有何不同. 我通过重写新样式的示例尝试了相同的示例,但结果与使用旧 ...
- python多继承顺序_Python多重继承方法解析顺序(MRO构建算法)
分界 python的MRO算法有新旧两种,但并不是以python2和python3为界,具体的分隔为:在python2中如果定义类的时候没有指定父类是object,即定义为 class A: pass ...
- 【python中selenium八大定位方法解析】
1.python模拟人,打开浏览器,操做页面,验证系统的功能是否正确() 2.web自动化应用场景:1.冒烟测试(稳定的业务场景,主流程确认系统可用) 2.回归测试(稳定的业务场景,页面改的小) 场景 ...
- python读数据-python读取各种文件数据方法解析
python读取.txt(.log)文件 ..xml 文件 .excel文件数据,并将数据类型转换为需要的类型,添加到list中详解 1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾 ...
- Python 求素数之多方法解析
素数简介:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 素数 1.素数的普通解法 直接上代码 import math L=[2] n=int(input("请输入所 ...
- python中reversed是什么意思_Python reversed函数及使用方法解析
Python reversed函数及使用方法解析 有些时候,程序需要进行反向遍历,此时可通过 reversed() 函数,该函数可接收各种序列(元组.列表.区间等)参数,然后返回一个"反序排 ...
- python的reversed函数实质_Python reversed函数及使用方法解析
Python reversed函数及使用方法解析 发布时间:2020-09-09 01:07:18 来源:脚本之家 阅读:74 有些时候,程序需要进行反向遍历,此时可通过 reversed() 函数, ...
- python怎么调用c语言_Python调用C语言程序方法解析
Python调用C语言程序方法解析 首先我们需要将编写好的c程序文件编译为动态库文件(后缀名为.so) 使用下面的命令: gcc 原文件名.c -shared -o 新文件名.so 然后在python ...
最新文章
- 机器学习如何彻底改变游戏中的物理模拟
- oracle返回表id,在Oracle的函数中,返回表类型的语句
- 计算机硬件基础-存取方式
- 领导力十律_关于开放领导力的10个最受欢迎的故事
- 2020牛客多校训练1 I 1or2(拆点拆边带花树一般图最大匹配)
- UC浏览器去广告、联网、升级(支持新版8.1)
- vue 如何使用md5密码加密
- Python的基础语法及使用
- python百度地图标注自己的店名_百度地图上怎么显示店名 百度地图标注店名方法...
- 记一次修改开源1078音视频服务器兼容粤标音视频的变更
- 交换机与路由器工作原理
- java 连接wtc_Tuxedo通过WTC调用weblogic配置
- System Verilog简要笔记
- Linux学习笔记(七)创建文件
- 中文词性标注的简单实现
- ASM027: 汇编常用工具
- 丁小平微积分研究成果刍议
- HGAME 2023 Week1
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java智能线上教育mo0l5
- C语言数据交换算法和伪指令,补充:单片机c语言与汇编语言混合编程.ppt
热门文章
- c语言函数写巴德歌赫猜想,{转帖}我们还有创造力么
- mysql注解批量添加mybatis_Mybatis注解方式 实现批量插入数据库
- 源码编译altas mysql_Atlas的安装
- switch语句判断范围_MQL5从入门到精通【第四章】(一)条件判断语句
- mysqldump备份原理及注意事项
- mysql主从与读写分离_MySQL主从复制与读写分离
- java string contains indexof,java.lang.String.contains()方法实例
- matlab fft 功率谱,matlab实现功率谱估计,关于FFT点数选取到底什么标准?
- Mysql允许root用户远程访问
- 服务器系统盘单独硬盘,我的服务器今天加了个硬盘,可以实现双系统吗?