二、实验说明¶
2.1 导入Python内置模块threading来实现多线程¶
2.2 定义一个say_after(what,delay)函数,包含what和delay两个参数,分别用来表示打印的内容及time.sleep()休眠的时间¶
2.3 配合for循环语句使用threading的Thread()函数为say_after(what,delay)函数创建多个线程并将其赋值给变量t¶
2.4 调用threading的start()启动刚刚创建的线程¶
2.5 配合for循环语句对每个线程调用join()方法,确保所有线程执行结束¶
2.6 所有线程执行结束后执行内核线程的print()语句¶
三、实验脚本¶
#coding=utf-8
#通过import语句引入实现多线程的内置模块threading和实现休眠程序的time模块
import threading
import time
#定义方法,并赋予两个形参what,delay
def say_after(what, delay):
#赋予形参值变为实参并将其打印出来
print(what)
#赋予形参值变为实参并将其打印出来,调用time中的方法sleep()
time.sleep(delay)
#赋予形参值变为实参并将其打印出来
print(what)
#打印程序开始执行时间
print(f"程序于{time.strftime('%X')}开始执行\n")
#创建空列表并将其赋值给变量threads
threads = []
#创建5个线程
for i in range(1,6):
#使用threading中的Thread()函数为say_after(what,delay)函数创建一个线程并将其赋值给变量t,其中target参数对应的是函数名称-say_after,args对应的是该say_after函数的参数
t = threading.Thread(target=say_after, name="线程" + str(i), args=('hello',3))
#打印开始执行的提示消息
print(f"{t.name}开始执行。")
#调用threading中的start()来启动刚刚创建的线程
t.start()
#将5个线程添加到列表threads中
threads.append(t)
#针对每个线程,调用join()方法强制阻塞调用它的线程,直到当前线程运行完毕或者终止
for i in threads:
i.join()
#打印程序执行结束时间
print(f"\n程序于{time.strftime('%X')}执行结束。")
四、实验环境¶
4.1 操作环境:Linux环境¶
4.2 Python版本:3.8¶
五、实验步骤¶
5.1 使用'vi thread1.py'创建脚本文件,并将其上述脚本内容复制粘贴¶

5.2 使用'chmod +x thread1.py'给脚本文件添加可执行权限¶
5.3 使用'python3.8 thread1.py'执行脚本文件¶
