Python 一次最多允许5个函数的并发实例
我有以下在独立线程中运行的函数。其中最多可以有100个线程同时运行Python 一次最多允许5个函数的并发实例,python,python-3.x,queue,python-multithreading,Python,Python 3.x,Queue,Python Multithreading,我有以下在独立线程中运行的函数。其中最多可以有100个线程同时运行 def do_stuff(项目): """ 假设最多可以同时运行100个此函数 """ #通常持续10-15秒 #并且没有并发限制 结果\u 1=无限\u网络\u调用() #通常持续20-25秒 #其中只有五个可以同时运行 结果2=有限的网络呼叫(结果1) #通常持续5-10秒 #并且没有并发限制 最终结果=另一个网络调用(结果2) 返回最终结果 我想不出处理以下问题的最佳方法: do\u stuff函数可以无限制地并发运行
def do_stuff(项目):
"""
假设最多可以同时运行100个此函数
"""
#通常持续10-15秒
#并且没有并发限制
结果\u 1=无限\u网络\u调用()
#通常持续20-25秒
#其中只有五个可以同时运行
结果2=有限的网络呼叫(结果1)
#通常持续5-10秒
#并且没有并发限制
最终结果=另一个网络调用(结果2)
返回最终结果
我想不出处理以下问题的最佳方法:
函数可以无限制地并发运行do\u stuff
也不同时受到限制unlimited\u network\u调用
- 但是,
是,一次只能运行5次有限的网络呼叫
do\u stuff
函数,同时让do\u stuff
函数等待此结果
也许还有其他我不会想到的有效方法。我认为信号量在这种情况下很有用。您可以给信号量对象一个初始值5,然后在acquire()和release()块之间环绕有限的_network_调用(结果_1)。你可以参考@PranjalDoshi这正是我想要的