程序员对世界说,我学编程都是为了你好
python 多线程编程
GIL的存在
123456789101112131415161718192021222324
import threadingimport time# 任务函数:每个线程执行这个def worker(name): for i in range(3): print(f"线程 {name} 正在工作... 第 {i+1} 次") time.sleep(1)# 创建线程列表threads = []names = ["A", "B", "C"] # 三个线程的名字# 1️⃣ 第一个 for 循环:创建并启动所有线程for name in names: t = threading.Thread(target=worker, args=(name,)) threads.append(t) t.start() # 启动线程(不等待)# 2️⃣ 第二个 for 循环:等待所有线程结束for t in threads: t.join() # 主线程在这里等待每个线程完成print("✅ 所有线程已执行完毕!")
12345678910
from concurrent.futures import ThreadPoolExecutordef task(n): return f"任务 {n} 完成"with ThreadPoolExecutor(max_workers=5) as pool: results = pool.map(task, range(5)) # 自动把 range(5) 分给线程for r in results: print(r)
Seraching...