我需要编写一个管理连接池的应用程序。我想知道应该研究哪些算法。
答案 0 :(得分:4)
典型的Pool实现将具有 free 存储桶堆栈:
这有利于重复使用上次使用的连接,这有利于缓存。
在为用户提供连接时,您将使用RAII,以便在删除对它的所有引用时自动(并确定性地)返回池。
现在,由您来决定如何处理事件:
这些是您的游泳池的实施细节,应根据您的要求进行调整。
答案 1 :(得分:2)
这里确实没有必要复杂的算法。您只需要两个桶,一个用于二手连接和免费连接。开始时,所有连接都在 free 存储桶中。如果请求了连接,则从 free 存储桶中取一个连接,并将其放入使用的存储桶中。如果不再使用它,则将其放回 free 存储桶中。