我的程序会同时使用aiohttp下载大约 1000 万条数据,然后将数据写入磁盘上大约 4000 个文件。
我使用aiofiles库是因为我希望我的程序在读/写文件时也能做其他事情。
但是我担心如果程序尝试同时写入所有 4000 个文件,硬盘就不能那么快地完成所有写入。
是否可以使用 aiofiles(或其他库)限制并发写入的数量?aiofiles 已经这样做了吗?
谢谢。
测试代码:
import aiofiles
import asyncio
async def write_to_disk(fname):
async with aiofiles.open(fname, "w+") as f:
await f.write("asdf")
async def main():
tasks = [asyncio.create_task(write_to_disk("%d.txt" % i))
for i in range(10)]
await asyncio.gather(*tasks)
asyncio.run(main())