gevent使用pool无法限制并发数量

import gevent 
import gevent.monkey
import gevent.pool 

def func():
    该函数中有很多网络请求,

gevent.monkey.patch_socket() 

pool=gevent.pool.Pool(10)

for i in range(300):
    pool.add(gevent.spawn(func,i))

pool.join()

我的pool中已经限制并发为10了,为什么运行程序的时候。客户端连接数上万,mysql有600多。求解答

阅读 14.6k
2 个回答
for i in range(300):
    pool.add(gevent.spawn(func,i))
    
改成   如果还不行 应该是你方法里连接没关
dataList = []
for i in range(300):
    dataList.append(pool.spawn(func,i))

sem = BoundedSemaphore(10)
def func():

sem.acquire()  
你的代码
sem.release()  
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题