Python Thread类主要功能介绍

开发 后端
Python Thread类主要用来表示一个单线程的运行活动。我们今天将会通过这篇文章介绍的内容为大家详细介绍一下这方面的知识。

Python编程语言做为ABC语言的一种继承,很好的帮助开发人员解决了一些比较困难的问题。而且其在使用方法上简单易用,在很大程度上提升了开发效率。我们今天将会为大家详细介绍一下有关Python Thread类的相关用法。#t#

Python Thread类表示在单独的控制线程中运行的活动。有两种方法可以指定这种活动,给构造函数传递回调对象,或者在子类中重写run() 方法。其他方法(除了构造函数)都不应在子类中被重写。换句话说,在子类中只有__init__()和run()方法被重写。

一旦线程对象被创建,它的活动需要通过调用线程的start()方法来启动。这方法再调用控制线程中的run方法。

一旦线程被激活,则这线程被认为是'alive'(活动)。当它的run()方法终止时-正常退出或抛出未处理的异常,则活动状态停止。isAlive()方法测试线程是否是活动的。

一个线程能调用别的线程的join()方法。这将阻塞调用线程,直到拥有join()方法的线程的调用终止。

线程有名字。名字能传给构造函数,通过setName()方法设置,用getName()方法获取。

线程能被标识为'daemon thread'(守护线程).这标志的特点是当剩下的全是守护线程时,则Python程序退出。它的初始值继承于创建线程。这标志用setDaemon()方法设置,用isDaemon()获取。

存在'main thread'(主线程),它对应于Python程序的初始控制线程。它不是后台线程。

有可能存在'dummy thread objects'(哑线程对象)被创建。这些线程对应于'alien threads'(外部线程),它们在Python的线程模型之外被启动,像直接从C语言代码中启动。哑线程对象只有有限的功能,它们总是被认为是活动的,守护线程,不能使用join()方法。它们从不能被删除,既然它无法监测到外部线程的中止。

class Thread(group=None, target=None, name=None, args=(), kwargs={})

构造函数能带有关键字参数被调用。这些参数是:

group 应当为 None,为将来实现Python Thread类的扩展而保留。

target 是被 run()方法调用的回调对象. 默认应为None, 意味着没有对象被调用。

name 为线程名字。默认,形式为'Thread-N'的***的名字被创建,其中N 是比较小的十进制数。

args是目标调用参数的tuple,默认为()。

kwargs是目标调用的参数的关键字dictionary,默认为{}。

如果子线程重写了构造函数,它应保证调用基类的构造函数(Thread.__init__()),在线程中进行其他工作之前。

start()

启动线程活动。

在每个线程对象中最多被调用一次。它安排对象的run() 被调用在一单独的控制线程中。

run()

用以表示线程活动的方法。

你可能在Python Thread类的子类重写这方法。标准的 run()方法调用作为target传递给对象构造函数的回调对象。如果存在参数,一系列关键字参数从args和kwargs参数相应地起作用。

join([timeout])

等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

当timeout参数未被设置或者不是None,它应当是浮点数指明以秒计的操作超时值。因为join()总是返回None,你必须调用isAlive()来判别超时是否发生。

当timeout 参数没有被指定或者是None时,操作将被阻塞直至线程中止。

线程能被join()许多次。

线程不能调用自身的join(),因为这将会引起死锁。

在线程启动之前尝试调用join()会发生错误。

getName()

返回线程名。

setName(name)

设置线程名。

这名字是只用来进行标识目的的字符串。它没有其他作用。多个线程可以取同一名字。最初的名字通过构造函数设置。

isAlive()

返回线程是否活动的。

大致上,线程从 start()调用开始那点至它的run()方法中止返回时,都被认为是活动的。模块函数enumerate()返回活动线程的列表。

isDaemon()

返回线程的守护线程标志。

setDaemon(daemonic)

设置守护线程标志为布尔值daemonic。它必须在start()调用之前被调用。

初始值继承至创建线程。

当没有活动的非守护线程时,整个Python程序退出。

以上就是我们对Python Thread类的相关介绍。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-03-03 13:50:40

Python文件

2010-04-26 16:51:11

Oracle Deco

2009-07-07 13:45:52

JDK日志框架

2011-11-16 09:59:50

私有云云存储

2010-06-30 11:04:41

SNMP协议网络管理

2010-06-24 13:57:57

Linux Cat命令

2016-02-19 10:03:30

苹果支付Apple Pay

2009-12-03 13:55:10

路由器主要功能

2010-06-01 10:52:14

IPv6交换中心

2019-10-31 09:14:27

物联网网关物联网IOT

2023-12-03 18:30:12

2016-12-02 16:00:22

服务器托管机柜

2009-11-09 10:51:46

2010-02-22 16:09:18

骨干交换机

2009-03-08 09:15:09

Windows 7微软功能禁用

2012-04-20 17:58:42

2010-01-14 17:46:29

智能交换机

2009-12-22 09:41:15

无线路由器

2009-11-20 16:33:02

备份路由器

2014-12-22 10:39:44

虚拟化云平台PaaS
点赞
收藏

51CTO技术栈公众号