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的词法分析与语法分析
May 18 Python
设计模式中的原型模式在Python程序中的应用示例
Mar 02 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
python3 使用traceback定位异常实例
Mar 09 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
Jun 09 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
python 基于opencv操作摄像头
Dec 24 Python
python-for x in range的用法(注意要点、细节)
May 10 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
对python中return和print的一些理解
2017/08/18 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
大学生村官工作感言
2014/01/10 职场文书
大学生水果店创业计划书
2014/01/28 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
行政人事岗位职责
2014/03/17 职场文书
2014年党务公开方案
2014/05/08 职场文书
土地转让协议书
2014/09/27 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
初级职称评定工作总结
2015/08/13 职场文书
Python学习之os包使用教程详解
2022/03/21 Python