Python 提供了几个用于多线程编程的模块,包括thread, threading 和Queue 等。thread 和threading 模块允许程序员创建和管理线程。thread 模块提供了基本的线程和锁的支持,而threading提供了更高级别,功能更强的线程管理的功能。Queue 模块允许用户创建一个可以用于多个线程之间共享数据的队列数据结构。
注意:避免使用thread模块,因为它不支持守护线程。当主线程退出时,所有的子线程不论它们是否还在工作,都会被强行退出。
下面重点说说threading模块。
我们的多线程继承threading模块里的Thread类,它的主要函数有:
函数 描述start() 开始线程的执行run() 定义线程的功能的函数(一般会被子类重写)join(timeout=None) 程序挂起,直到线程结束;如果给了timeout,则最多阻塞timeout 秒getName() 返回线程的名字setName(name) 设置线程的名字isAlive() 布尔标志,表示这个线程是否还在运行中isDaemon() 返回线程的daemon 标志
setDaemon(daemonic) 把线程的daemon 标志设为daemonic(一定要在调用start()函数前调用)
下面是一个例子:
import threading import time class mythread(threading.Thread): def __init__(self,num): threading.Thread.__init__(self) self.num = num def run(self): if self.num < 2: time.sleep(self.num); print self.num if __name__ == '__main__': nums=[1,2,3,4,5] for num in nums: t = mythread(num) t.start()
在main函数里,同时启动5个线程,如果num < 3,就先休眠一会儿,因此2,3,4,5最先被打印出来,1最后被打印出来。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索线程
, 多线程
, 函数
, 模块
, python学习
, num
, 子线程 打印
, threading
, python多线程编程
, THREADING模块
threading.Thread类
,以便于您获取更多的相关知识。