← 返回首页
Python多线程(threading模块) – OmegaXYZ
无结果
菜单

Python多线程(threading模块)

首页 技术域 高级语言 Python Python多线程(threading模块)

CPU越来越快我们不能满足Python同一时间只做一件事,需要三心二意,多任务处理(mutiltasking)这就需要使用多线程,让程序在同一时间做很多事。

下面简单介绍threading模块。

Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入。

下面的代码是创建threading.Thread对象,对于初学使用者已经够了。

看结果时间相同。

 

threading.Thread类的初始化函数原型:

def __init__(self, group=None, target=None, name=None, args=(), kwargs={})

  •   参数group是预留的,用于将来扩展;
  •   参数target是一个可调用对象(也称为活动[activity]),在线程启动后执行;
  •   参数name是线程的名字。默认值为“Thread-N“,N是一个数字。
  •   参数args和kwargs分别表示调用target时的参数列表和关键字参数。

 

Thread类还定义了以下常用方法与属性:

Thread.getName()

Thread.setName()

Thread.name

用于获取和设置线程的名称。

Thread.ident

获取线程的标识符。线程标识符是一个非零整数,只有在调用了start()方法之后该属性才有效,否则它只返回None。

Thread.is_alive()

Thread.isAlive()

判断线程是否是激活的(alive)。从调用start()方法启动线程,到run()方法执行完毕或遇到未处理异常而中断 这段时间内,线程是激活的。

Thread.join([timeout])

调用Thread.join将会使主调线程堵塞,直到被调用线程运行结束或超时。参数timeout是一个数值类型,表示超时时间,如果未提供该参数,那么主调线程将一直堵塞到被调线程结束。

threading.Timer

threading.Timer是threading.Thread的子类,可以在指定时间间隔后执行某个操作。

threading.Event

Event实现与Condition类似的功能,不过比Condition简单一点。它通过维护内部的标识符来实现线程间的同步问题。(threading.Event和.NET中的System.Threading.ManualResetEvent类实现同样的功能。)

Event.wait([timeout])

堵塞线程,直到Event对象内部标识位被设为True或超时(如果提供了参数timeout)。

Event.set()

将标识位设为Ture

Event.clear()

将标识伴设为False。

Event.isSet()

判断标识位是否为Ture。

threading.active_count()
threading.activeCount()

获取当前活动的(alive)线程的个数。

threading.current_thread()
threading.currentThread()

获取当前的线程对象(Thread object)。

threading.enumerate()

获取当前所有活动线程的列表。

threading.settrace(func)

设置一个跟踪函数,用于在run()执行之前被调用。

threading.setprofile(func)

设置一个跟踪函数,用于在run()执行完毕之后调用。

更多内容:http://python.jobbole.com/81546/

上一页 文章 Python的psutil模块监控内存代码
下一页 文章 wxpython显示静态文本

📂 分类目录

📂 分类目录 选择分类 English  (7) ideas  (42)    常识  (3)    程序人生  (26)    随笔  (16)    面试  (1) 技术域  (578)    APP开发  (18)    Web开发  (38)    其它  (14)    操作系统  (20)    数据库  (16)    数据结构  (51)    机器学习  (198)       深度学习  (39)       知识图谱  (25)       自然语言处理  (24)       计算机视觉  (11)       进化算法  (69)    汇编语言  (16)    组成原理与体系结构  (7)    编译原理  (13)    计算机图形学  (4)    计算机网络  (2)    软件工程  (29)    高级语言  (372)       C&C++  (131)       JAVA  (29)       JavaScript&Html  (23)       Matlab  (48)       Python  (150) 转载  (24)

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注

名称  *

邮箱  *

站点

添加评论 *

评论将在机器人审核后公开,我接受OmegaXYZ的隐私政策*。

发表评论

Δ

图灵技术域微信公众号