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基于windows平台锁定键盘输入的方法
Mar 05 Python
python中的代码编码格式转换问题
Jun 10 Python
Python实现爬虫从网络上下载文档的实例代码
Jun 13 Python
python实现AES加密和解密
Mar 27 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python 实现return返回多个值
Nov 19 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 Python
python读取mnist数据集方法案例详解
Sep 04 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实现递归与无限分类的方法
2015/02/16 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
js中作用域的实例解析
2017/03/16 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
Python注释详解
2016/06/01 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
python框架django基础指南
2016/09/08 Python
基于Python闭包及其作用域详解
2017/08/28 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
python 中xpath爬虫实例详解
2019/08/26 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
企业指导教师评语
2014/04/28 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
导游词之江南周庄
2019/12/06 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript