自定义连接池慢(JAVA)?

时间:2015-10-27 19:40:00

标签: java jdbc connection-pooling

对于我的项目,我们被要求实现自己的连接池。我们不允许从jdbc使用PGPoolingDataSource。当我使用jdbc池时,我的程序非常快,我自己的连接池不可预测且速度慢得多。我的连接使一些任务等待很长时间,这与jdbc池没有发生。

我正在使用Arrayblockingqueue来实现连接池,我只创建一个预先说过的连接数,然后让客户借用并将它们放回去。

我的意思是这似乎对我有意义,而且有效。但它的速度很慢,有时候任务需要永远完成,无论如何我还能改进它吗?让它更快更可靠吗?

1 个答案:

答案 0 :(得分:2)

您使用错误的数据结构来存储连接ArrayBlockingQueue是FIFO结构,这会降低您的处理速度,使用ConcurrentLinkedQueue是合理且更快的选择。