如何在asyncio python中使用子进程模块限制并发进程数

时间:2017-09-04 06:41:26

标签: python subprocess python-asyncio

import asyncio
import asyncio.subprocess
args="blah blah argument "     
create=asyncio.create_subprocess_shell(args,stdout=asyncio.subprocess.PIPE)
proc = await create
output= await proc.stdout.read( )

这是我的服务器代码的一部分,它从客户端获得1000次并行命中。现在我应该如何限制服务器创建的最大子进程数以运行参数blah blah。因为这是代码使用100%的我的CPU。我需要在smae cpu上部署其他服务器

1 个答案:

答案 0 :(得分:2)

asyncio.Semaphore是限制同时工作的内部反击的一种方式:

{{1}}

请注意,您应该确保工作数量的增长速度远远快于实际工作量。否则,你需要一些比这更复杂的东西。