from multiprocessing import RLock import queue class ConnectorPool(): def __init__(self,init_num,max_num,method_init,**kwargs): self.connector_pool = queue.Queue() for i in range(init_num): self.connector_pool.put(method_init(**kwargs)) self.method_init = method_init self.kwargs = kwargs self._lock = RLock() self.pool_size = init_num self.max_num = max_num def getConnector(self): with self._lock: if self.connector_pool.empty(): if self.pool_size