上述伪代码忽略了一些细节,在实现连接池中是需要考虑的: (1)如果连接全部被占用,是返回失败,还是让上游等待 (2)需要实施连接可用性检测 (3)为了让调用方更友好,可能还需要包装一层DAO层,让“连接”这个东西对调用方都是黑盒的 (4)通过freeArray,connectionMap可以让取连接和放回连接都达到O(1)时间复杂度 (5)可以通过hash实现id串行化 (6)负载均衡、故障转移、服务自动扩容都可以在这一层实现