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列表推导式的使用方法
Nov 21 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
Python字符串拼接六种方法介绍
Dec 18 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
通过python顺序修改文件名字的方法
Jul 11 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
python自动识别文本编码格式代码
Dec 26 Python
python读取文件指定行内容实例讲解
Mar 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
基于Zend的Captcha机制的应用
2013/05/02 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
php基础教程
2015/08/26 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
Python 的内置字符串方法小结
2016/03/15 Python
Python3 操作符重载方法示例
2017/11/23 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Django websocket原理及功能实现代码
2020/11/14 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
创立科技Java面试题
2015/11/29 面试题
优秀求职信范文分享
2013/12/19 职场文书
员工评语大全
2014/01/19 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
学生安全责任书模板
2014/07/25 职场文书
小学生作文评语集锦
2014/12/25 职场文书
雷锋观后感
2015/06/10 职场文书
中学教师教学工作总结
2015/08/13 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js