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 相关文章推荐
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
pandas 选择某几列的方法
Jul 03 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
python3实现弹弹球小游戏
Nov 25 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
Python同时处理多个异常的方法
Jul 28 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
python常见的占位符总结及用法
Jul 02 Python
pycharm无法安装cv2模块问题
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
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
YII中assets的使用示例
2014/07/31 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
javascript中new关键字详解
2015/12/14 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
Selenium定位元素操作示例
2018/08/10 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python多线程并发及测试框架案例
2019/10/15 Python
python如何实现复制目录到指定目录
2020/02/13 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
shallow copy和deep copy的区别
2016/05/09 面试题
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
承租经营合作者协议书
2014/10/01 职场文书
安全隐患整改报告
2014/11/06 职场文书
培训督导岗位职责
2015/04/10 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
护士岗位竞聘书
2015/09/15 职场文书
高三英语教学反思
2016/03/03 职场文书
导游词之无锡梅园
2019/11/28 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP