创建与启动线程
44.2 创建与启动线程
threading.Thread(target=函数, args=(参数,)) 创建线程对象。
t.start() 启动;主线程结束但子线程未结束则程序会等待(非 daemon)。
不要直接调用 t.run(),那是普通函数调用,不会开新线程。
两个线程并行
# ========================================
# 示例:创建两个线程
# 说明:start 启动;sleep 模拟耗时 I/O
# ========================================
import threading
import time
def work(name, sec):
print(name, '开始,线程名', threading.current_thread().name)
time.sleep(sec) # 模拟下载/等待
print(name, '结束')
# 创建线程对象,args 传给 target 函数
t1 = threading.Thread(target=work, args=('任务A', 1))
t2 = threading.Thread(target=work, args=('任务B', 1.5))
t1.start() # 启动线程 A
t2.start() # 启动线程 B
t1.join() # 主线程等待 A 完成
t2.join() # 主线程等待 B 完成
print('全部完成')