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 创建子进程模块subprocess详解
Apr 08 Python
Python编程之属性和方法实例详解
May 19 Python
pycharm+django创建一个搜索网页实例代码
Jan 24 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
Numpy之random函数使用学习
Jan 29 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
基于Django统计博客文章阅读量
Oct 29 Python
Django基于客户端下载文件实现方法
Apr 21 Python
python代码区分大小写吗
Jun 17 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
python如何查看网页代码
2020/06/07 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
什么是网络协议
2016/04/07 面试题
逻辑链路控制协议
2016/10/01 面试题
学习新党章思想汇报
2014/01/09 职场文书
和平主题的演讲稿
2014/01/12 职场文书
请假条怎么写
2014/04/10 职场文书
服务承诺口号
2014/05/22 职场文书
校园活动策划方案
2014/06/13 职场文书
学习张林森心得体会
2014/09/10 职场文书
护士辞职信怎么写
2015/02/27 职场文书
合同范本之电脑出租
2019/08/13 职场文书