python如何实现异步并发

下面是一个示例代码,展示了如何设计一个异步线程池,并实现线程池满了就等待,空了就继续扔的功能:

import concurrent.futures
import time
# 创建一个线程池
thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=8)
# 定义任务函数
def task_function(task_id):
    print(f"Task {task_id} started")
    # 执行任务的逻辑
    time.sleep(10)
    print(f"Task {task_id} completed")
# 提交任务到线程池
def submit_task(task_id):
    future = thread_pool.submit(task_function, task_id)
    return future

# 示例任务列表
task_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 提交任务到线程池,并等待任务完成
for task_id in task_list:
    future = submit_task(task_id)
    # 等待线程池中的任务完成
    while thread_pool._work_queue.qsize() >= thread_pool._max_workers:
        pass

# 关闭线程池
thread_pool.shutdown()

输出结果
python如何实现异步并发_第1张图片

你可能感兴趣的:(python,服务器,开发语言)