python系统编程02-使用threading模块如何创建线程
-
python头通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的原始线程以及一个简单的锁。
thread类提供了以下方法:
-
run():用以表示线程活动的方法;
-
start():启动线程活动;
-
join([time]):等待至线程中止。这阻塞调用线程直至线程的join()方法被调用终止-正常退出或者抛出未处理的异常-或者是可选的超时发生;
-
isAlive():返回线程是否活动;
-
getNAME():返回线程名;
-
setNAME():设置线程名;
-
threading.currentThread():返回当前线程变量;
-
threading.enumerate():返回一个包含正在运行的线程list。正在运行指线程启动后、结束前,不包含启动前和终止后的线程。
-
threading.activeCount():返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。
使用threading模块创建线程的方式为:自定义一个继承自threading.Thread的类,然后充血__init__方法和run方法。
import threading import time exitFlag = 0 class myThread(threading.Thread): def __init__(self, threadID, name, counter): threading.Thread.__init__(self) # 重写__init__方法 self.threadID = threadID self.name = name self.counter = counter def run(self): # 要执行的代码写到run函数里面,线程创建后会直接运行run函数 print("Starting" + self.name) print_time(self.name, self.counter, 5) print("Exiting" + self.name) def 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-1", 2) # 开启线程 thread1.start() thread2.start() print("Exiting Main Thread")
运行结果如下图所示:

浙公网安备 33010602011771号