在池中找到空闲连接的最佳算法是什么?

ElT*_*ato 2 algorithm connection-pooling

我需要编写一个管理连接池的应用程序。我想知道应该研究哪些算法。

Mat*_* M. 5

一个典型的Pool实现将有一个空闲的存储桶堆栈:

  • 当请求连接时,将其从堆栈中弹出
  • 当将连接返回给池时,将其压入堆栈

这有利于重用上次使用的连接,这对缓存很有用。

与用户建立连接时,您将使用RAII,以便在删除对它的所有引用时,它会自动(确定地)返回到Pool。

现在,由您决定如何处理事件:

  • 没有连接时的连接请求(您可以等待,建立新的连接,等等...)
  • 当堆栈中已经有很多连接时,返回一个连接(我们是否要保留很多连接?)

这些是您池的实现详细信息,应根据您的要求进行调整。