Python高并发编程:探索异步IO和多线程并发
warning:
这篇文章距离上次修改已过183天,其中的内容可能已经有所变动。
在Python中,高并发通常可以通过多线程或者异步IO(asyncio)库来实现。以下是一个简单的异步IO示例,它使用asyncio库来并发执行多个IO密集型任务:
import asyncio
async def fetch_url(url):
# 使用aiohttp异步获取URL内容
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
urls = ['http://example.com/', 'http://example.com/page2', 'http://example.com/page3']
tasks = [fetch_url(url) for url in urls]
results = await asyncio.gather(*tasks)
for result in results:
print(result)
if __name__ == '__main__':
import asyncio
import aiohttp
# 设置异步事件循环
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
这段代码使用了asyncio
库和aiohttp
库来异步获取多个URL的内容。fetch_url
函数是一个异步函数,它使用aiohttp
来异步发送HTTP请求。main
函数则是一个异步函数,它并发地运行fetch_url
来获取多个URL的内容,并等待所有任务完成。
这个例子展示了如何使用Python异步IO编写高并发的代码。异步IO是Python中实现高并发的一个重要工具,特别适合于IO密集型的任务。
评论已关闭