from queue import Queue
import threading
from tqdm import tqdm
import time
# 定义一个简单的工作函数,这里只是模拟耗时操作
def do_work(item):
time.sleep(0.1) # 模拟耗时操作
# 工作线程函数
def worker(queue):
while not queue.empty():
item = queue.get() # 从队列中获取任务
do_work(item) # 处理任务
queue.task_done() # 完成一个任务
# 创建队列并填充任务
queue = Queue()
for i in range(100): # 假设有100个任务
queue.put(i)
# 创建线程
num_threads = 5
threads = []
for _ in range(num_threads):
t = threading.Thread(target=worker, args=(queue,))
t.start()
threads.append(t)
# 使用tqdm监控队列长度
with tqdm(total=queue.qsize()) as pbar:
while not queue.empty():
current_size = queue.qsize()
pbar.update(pbar.total - current_size - pbar.n)
time.sleep(0.1)
# 等待所有任务完成
queue.join()
# 确保所有线程都执行完毕
for t in threads:
t.join()
print("所有任务完成。")
12-12
900

11-13
1090
