from concurrent.futures import ThreadPoolExecutor
# 使用 ThreadPoolExecutor 创建线程池
executor = ThreadPoolExecutor(max_workers=len(models) + 1)
# 提交生产者任务到线程池
executor.submit(
DetectionService._producer_frames,
read_data,
mode,
interval_seconds,
start_time,
end_time,
queue_manager
)
# 提交消费者任务到线程池
for key, value in CV_MODEL.items():
with queue_manager.lock:
q = queue_manager.queues.get(key)
executor.submit(
DetectionService._consumer_frames,
q, mode, diff, name, key, value
)
from concurrent.futures import ThreadPoolExecutor
# 使用 ThreadPoolExecutor 创建线程池,并设置最大工作线程数为 4
with ThreadPoolExecutor(max_workers=4) as executor:
# 提交生产者任务到线程池
executor.submit(
DetectionService._producer_frames,
read_data,
mode,
interval_seconds,
start_time,
end_time,
queue_manager
)
# 提交消费者任务到线程池
for key, value in CV_MODEL.items():
with queue_manager.lock:
q = queue_manager.queues.get(key)
executor.submit(
DetectionService._consumer_frames,
q, mode, diff, name, key, value
)