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 zip文件 压缩
Dec 24 Python
使用Python操作Elasticsearch数据索引的教程
Apr 08 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
解决Mac安装scrapy失败的问题
Jun 13 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
Python生成一个迭代器的实操方法
Jun 18 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
pandas 强制类型转换 df.astype实例
Apr 09 Python
初学者学习Python好还是Java好
May 26 Python
基于Python爬取股票数据过程详解
Oct 21 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
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP发送短信代码分享
2015/08/11 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
jquery移动节点实例
2015/01/14 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python选择排序算法实例总结
2015/07/01 Python
Python字符串处理实现单词反转
2017/06/14 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
python样条插值的实现代码
2018/12/17 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
python中取绝对值简单方法总结
2020/07/24 Python
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
应届大学生的推荐信
2013/11/20 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
集体备课反思
2014/02/12 职场文书
教师评语大全
2014/04/28 职场文书
企业理念标语
2014/06/09 职场文书
公民授权委托书范本
2014/09/17 职场文书
事业单位年度考核评语
2014/12/31 职场文书
2015年个人思想总结
2015/03/09 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
被告答辩状范文
2015/05/22 职场文书
python编写函数注意事项总结
2021/03/29 Python
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
JS的深浅复制详细
2021/10/16 Javascript
Java Redisson多策略注解限流
2022/09/23 Java/Android