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 相关文章推荐
记录Django开发心得
Jul 16 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Python解决走迷宫问题算法示例
Jul 27 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
python3.8下载及安装步骤详解
Jan 15 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
linux中nohup和后台运行进程查看及终止
Jun 24 Python
 Python 中 logging 模块使用详情
Mar 03 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
php检测url是否存在的方法
2015/04/14 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
在Python的Django框架中包装视图函数
2015/07/20 Python
python 剪切移动文件的实现代码
2018/08/02 Python
python3 flask实现文件上传功能
2020/03/20 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
jupyter notebook 重装教程
2020/04/16 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python定义一个Actor任务
2020/07/29 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
护理工作感言
2014/01/16 职场文书
人力资源职位说明书
2014/07/29 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2015年幼师工作总结
2015/04/28 职场文书
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript