**
调用 Threading库创建线程,从 Mthreading. Thread继承。
**
import threading
import time
class MyThread(threading.Thread):
def __init__(self, name, delay):
threading.Thread.__init__(self)
self.name = name
self.delay = delay
def run(self):
print("Starting" + self.name)
self.print_time(self.name, self.delay)
print("Exiting" + self.name)
def print_time(self, thread_name, delay):
counter = 0
while counter < 3:
time.sleep(delay)
print(thread_name, time.ctime())
counter += 1
threads = []
# 创建新线程
thread1 = MyThread("Thread--1", 1)
thread2 = MyThread("Thread--2", 2)
# 开启新线程
thread1.start()
thread2.start()
# 添加线程到线程列表
threads.append(thread1)
threads.append(thread2)
# 等待所有线程完成
for t in threads:
t.join()
print("Exiting Main Thread")
运行上述代码,得到的结果是:
StartingThread--1
StartingThread--2
Thread--1 Mon Jul 27 09:14:14 2020
Thread--2 Mon Jul 27 09:14:15 2020
Thread--1 Mon Jul 27 09:14:15 2020
Thread--1 Mon Jul 27 09:14:16 2020
ExitingThread--1
Thread--2 Mon Jul 27 09:14:17 2020
Thread--2 Mon Jul 27 09:14:19 2020
ExitingThread--2
Exiting Main Thread
在上述代码中,将任务手动地分到两个线程中,即thread1=MyThread(“Thread–1”,1)。接下来在MyThread这个类中对线程进行设置,使用run()表示线程运行的方法,当 counter小于3时,打印该线程的名称和时间。然后使用 thread. start()开启线程,使用 threads. append(将线程加入线程列表,使用 join()等待所有子线程完成才会继续执行主线程。