综合练习:线程池思想
44.14 综合练习:线程池思想
用固定数量 worker 线程 + Queue 处理一批任务(简化版线程池)。
3 个 worker 处理 10 个任务
进阶可用 concurrent.futures.ThreadPoolExecutor。
# ========================================
# 示例:固定 worker 数量
# 说明:任务入队,多个 worker 竞争取任务
# ========================================
import threading
import queue
task_q = queue.Queue()
for i in range(10):
task_q.put(i)
def worker(wid):
while True:
try:
n = task_q.get_nowait()
except queue.Empty:
break
print(f'Worker{wid} 处理任务', n)
task_q.task_done()
for w in range(3):
threading.Thread(target=worker, args=(w,), daemon=True).start()
task_q.join()
print('全部任务完成')