Python threading的使用方法解析


Posted in Python onAugust 28, 2019

一、 例子:我们对传参是有要求的必须传入一个元组,否则报错

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)
​

Python threading的使用方法解析

二、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()

Python threading的使用方法解析

从上面可以看出来,我们启动了两个线程,但是这两个线程执行完了才打印​最后一个结束语句。

2.守护线程

​格式:线程.setDaemon(True)

作用​:

(1)如果在程序中将子线程设置为守护线程,则子线程会在主线程结束的时候自动退出​;

(2)一般认为,守护线程不重要或者不允许脱离子线程而独立运行;

(3)守护线程能否有效果和环境有关系

注意点:该语句一定要写在start语句之前,否则就会把子程序无限时间挂起,运行报错,​如:

Python threading的使用方法解析

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")

Python threading的使用方法解析

​解释:我们可以看出主线程结束后(即打印完了”Main thread End")后,我们的子线程的最后一个打印没有出来,程序就结束了,说明主线程结束,子线程无论执行到哪里都会被kill掉,和我们的预期一样。

三、源码

d24_2_usage_of_threading.py

地址:https://github.com/ruigege66/Python_learning/blob/master/d24_2_usage_of_threading.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字符遍历的艺术
Sep 06 Python
Python数据结构之Array用法实例
Oct 09 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python编写简单端口扫描器
Sep 04 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
Python随机数函数代码实例解析
Feb 09 Python
什么是python的函数体
Jun 19 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 #Python
Python logging设置和logger解析
Aug 28 #Python
Python shelve模块实现解析
Aug 28 #Python
解决python明明pip安装成功却找不到包的问题
Aug 28 #Python
Python 函数list&read&seek详解
Aug 28 #Python
Python collections模块使用方法详解
Aug 28 #Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 #Python
You might like
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
自己的js工具 Cookie 封装
2009/08/21 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python实现简单飞行棋
2020/02/06 Python
Python识别html主要文本框过程解析
2020/02/18 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
创建索引时需要注意的事项
2013/05/13 面试题
《蚕姑娘》教学反思
2014/04/15 职场文书
大型会议策划方案
2014/05/17 职场文书
买卖合同协议书范本
2014/10/18 职场文书
幽默导游词开场白
2015/05/29 职场文书
李强感恩观后感
2015/06/17 职场文书