# 演示多线程,说明多线程对IO密集型操作有明显优化
"""
1、foo1 循环2次,每次sleep时间2秒,执行完是4秒,foo2 循环5次,每次sleep时间1秒,执行完是5秒,并且是交替执行
2、如果是单线程需要9秒以上,多线程需要5秒以上,并且是顺序执行
3、只有循环都结束后,主线程才会打印‘主线程结束’,说明join会阻塞主线程
"""
import threading
import time
def foo1():
for i in range(1, 3):
print('foo1 函数第{}执行'.format(i))
time.sleep(2)
def foo2():
for i in range(1, 6):
print('foo2 函数第{}执行'.format(i))
time.sleep(1)
if __name__ == '__main__':
start_time = time.time()
t1 = threading.Thread(target=foo1)
t2 = threading.Thread(target=foo2)
t1.start()
t2.start()
t1.join()
t2.join()
end_time = start_time - time.time()
print('主线程结束执行时间{}'.format(end_time))