python线程里哪种模块比较适合


Posted in Python onAugust 02, 2020

在Python中可使用的多线程模块主要有两个,thread和threading模块。thread模块提供了基本的线程和锁的支持,建议新手不要使用。threading模块允许创建和管理线程,提供了更多的同步原语。

thread模块函数:

  • start_new_thread(function, args[, kwargs]):启动新的线程以执行function,返回线程标识。
  • allocate_lock():返回LockType对象。
  • exit():抛出SystemExit异常,如果没有被捕获,线程静默退出。
  • LockType类型锁对象的方法:
  • acquire([waitflag]):无参数,无条件获得锁,如果锁已经被其他线程获取,则等待锁被释放。如果使用整型参数,参数为0,如果锁可获取,则获取且返回True,否则返回False;参数为非0,与无参数相同。
  • locked():返回锁的状态,如果已经被获取,则返回True,否则返回False。
  • release():释放锁。只有已经被获取的锁才能被释放,不限于同一个线程。
  • threading模块提供了更好的线程间的同步机制。threading模块下有如下对象:
  • Thread
  • Lock
  • RLock
  • Condition
  • Event
  • Semaphore
  • BoundedSemaphore
  • Timer
  • threading模块内还有如下的函数:
  • active_count()
  • activeCount():返回当前alive的线程数量
  • Condition():返回新的条件变量对象
  • current_thread()
  • currentThread():返回当前线程对象
  • enumerate():返回当前活动的线程,不包括已经结束和未开始的线程,包括主线程及守护线程。
  • settrace(func):为所有线程设置一个跟踪函数。
  • setprofile(func):为所有纯种设置一个profile函数。

内容扩展:

Python线程模块

常用参数说明

  • target 表示调用对象,几子线程要执行的的任务
  • name 子线程的名称
  • args 传入target函数中的位置参数,是一个元组,参数后必须加逗号

常用的方法

  • Thread.star(self)启动进程
  • Thread.join(self)阻塞进程,主线程等待
  • Thread.setDaemon(self,daemoic) 将子线程设置为守护线程
  • Thread.getName(self.name) 获取线程名称
  • Thread.setName(self.name) 设置线程名称
import time
from threading import Thread
 
 
def hello(name):
  print('hello {}'.format(name))
  time.sleep(3)
  print('hello bye')
 
def hi():
  print('hi')
  time.sleep(3)
  print('hi bye')
 
if __name__ == '__main__':
 
  hello_thread = Thread(target=hello, args=('wan zong',),name='helloname') #target表示调用对象。name是子线程的名称。args 传入target函数中的位置参数,是个元组,参数后必须加逗号
  hi_thread = Thread(target=hi)
 
  hello_thread.start() #开始执行线程任务,启动进程
  hi_thread.start()
 
  hello_thread.join() #阻塞进程 等到进程运行完成 阻塞调用,主线程进行等待
  hi_thread.join()
 
  print(hello_thread.getName())
  print(hi_thread.getName()) #会默认匹配名字
 
  hi_thread.setName('hiname')
  print(hi_thread.getName())
 
  print('主线程运行完成!')

到此这篇关于python线程里哪种模块比较适合的文章就介绍到这了,更多相关python线程用什么模块好内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
python数据结构之列表和元组的详解
Sep 23 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
Python实现合并两个列表的方法分析
May 28 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
Python3最长回文子串算法示例
Mar 04 Python
python实现机器人卡牌
Oct 06 Python
解决Python logging模块无法正常输出日志的问题
Feb 21 Python
Python之变量类型和if判断方式
May 05 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
baselines示例程序train_cartpole.py的ImportError
May 20 Python
python缩进长度是否统一
Aug 02 #Python
Python接收手机短信的代码整理
Aug 02 #Python
Python改变对象的字符串显示的方法
Aug 01 #Python
Python 如何定义匿名或内联函数
Aug 01 #Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 #Python
Python如何读写二进制数组数据
Aug 01 #Python
Python将字典转换为XML的方法
Aug 01 #Python
You might like
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
python保存文件方法小结
2018/07/27 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
升学宴演讲稿
2014/09/01 职场文书
求职简历自我评价范文
2015/03/10 职场文书
电影圆明园观后感
2015/06/03 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL