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 self,cls,decorator的理解
Jul 13 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
Python输出9*9乘法表的方法
May 25 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
Python autoescape标签用法解析
Jan 17 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
virtualenv介绍及简明教程
Jun 23 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
List Installed Software Features
2007/06/11 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
Python3基础之list列表实例解析
2014/08/13 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
python+opencv实现阈值分割
2018/12/26 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
中华魂演讲稿
2014/05/13 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
出差报告怎么写
2014/11/06 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
python3操作redis实现List列表实例
2021/08/04 Python
Minikube搭建Kubernetes集群
2022/03/31 Servers