Python asyncio.gather与并发控制 📅 2026/6/16 4:24:01 asyncio.gather并发运行协程。return_exceptionsTrue异常作为结果返回。asyncio.wait(TASKS,return_whenALL_COMPLETED/FIRST_COMPLETED/FIRST_EXCEPTION)。asyncio.wait_for超时。asyncio.as_completed按完成顺序处理。asyncio.create_task后台任务。asyncio.TaskGroup结构化并发(Python 3.11)。asyncio.Semaphore限制并发。TaskGroup自动传播取消。import asyncioasync def fetch(url, delay):await asyncio.sleep(delay)return urlasync def main():# gatherresults await asyncio.gather(fetch(a, 1), fetch(b, 2), fetch(c, 3),return_exceptionsTrue)# as_completedtasks [fetch(i, i) for i in range(5)]for coro in asyncio.as_completed(tasks):result await coroprint(result)# Semaphore限制并发sem asyncio.Semaphore(3)async def limited(url):async with sem:return await fetch(url, 1)# TaskGroupasync with asyncio.TaskGroup() as tg:tg.create_task(fetch(a, 1))tg.create_task(fetch(b, 2))