创建新线程
from threading import Thread
from time import sleep
print('主线程开始')
# 定义一个函数,此函数在新线程中运行
def threadfunc(agr1,agr2):
print('新线程开始')
print(f'新线程函数的参数是:{agr1},{agr2}')
time.sleep(5) # 模拟运行函数需要的时间
print('新线程结束')
# 实例化Thread对象
# target:要在新线程中运行的函数,args:函数需要用的参数元组类型
thread=Thread(
target=threadfunc,
args=('参数1','参数2')
)
# 调用了start方法后新线程才开始运行,去执行threadfunc函数
thread.start()
# print('主线程结束')
# 这个时候主线程先运行完,新线程需要时间,子线程最后结束
# 运行结果:主线程开始 子线程开始 线程函数的参数是:参数1,参数2 主线程结束 子线程结束
# 加上join方法后,主线程会等待子线程运行结束后再执行接下来的代码
# (A线程中调用了B线程Thread的join方法会等待B运行结束后,线程A才继续执行接下来的代码)
thread.join()
print('主线程结束')
共享数据的访问控制
from threading import Thread, Lock
from time import sleep
time1=time.time() # 计算下执行代码运行时间