二、实验说明

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'执行脚本文件

图二