您好,欢迎访问一九零五行业门户网

什么是Python Threading模块?3分钟了解什么是线程模块

本文主要讲述什么是线程:线程是操作系统能够进行运算调度的最小单位。进程被包含在进程中,是进程中实际处理单位。一条线程就是一堆指令集合。
一条线程是指进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。
threading 模块提供的其他方法:
1.threading.currentthread(): 返回当前的线程变量。
2.threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
3.threading.activecount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。
除了使用方法外,线程模块同样提供了thread类来处理线程,thread类提供了以下方法:
1.run(): 用以表示线程活动的方法。
2.start():启动线程活动。
3.join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。
4.isalive(): 返回线程是否活动的。
5.getname(): 返回线程名。
6.setname(): 设置线程名。
使用threading模块创建线程
使用threading模块创建线程,直接从threading.thread继承,然后重写__init__方法和run方法:
#!/usr/bin/python# -*- coding: utf-8 -*-import threadingimport timeexitflag = 0class mythread (threading.thread): #继承父类threading.threaddef __init__(self, threadid, name, counter):threading.thread.__init__(self)self.threadid = threadidself.name = nameself.counter = counterdef run(self): #把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 print "starting " + self.nameprint_time(self.name, self.counter, 5)print "exiting " + self.namedef print_time(threadname, delay, counter):while counter:if exitflag:(threading.thread).exit()time.sleep(delay)print "%s: %s" % (threadname, time.ctime(time.time()))counter -= 1# 创建新线程thread1 = mythread(1, "thread-1", 1)thread2 = mythread(2, "thread-2", 2)# 开启线程thread1.start()thread2.start()print "exiting main thread"
以上程序执行结果如下;
starting thread-1starting thread-2exiting main threadthread-1: thu mar 21 09:10:03 2013thread-1: thu mar 21 09:10:04 2013thread-2: thu mar 21 09:10:04 2013thread-1: thu mar 21 09:10:05 2013thread-1: thu mar 21 09:10:06 2013thread-2: thu mar 21 09:10:06 2013thread-1: thu mar 21 09:10:07 2013exiting thread-1thread-2: thu mar 21 09:10:08 2013thread-2: thu mar 21 09:10:10 2013thread-2: thu mar 21 09:10:12 2013exiting thread-2
以上就是什么是python threading模块?3分钟了解什么是线程模块的详细内容。
其它类似信息

推荐信息