自定义连接池速度慢(JAVA)



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

我使用Arrayblockingqueue来实现连接池,我只创建了预先说过的连接数量,然后让客户借用并放回。

我的意思是,这对我来说似乎很有意义,而且很有效。但它很慢,有时任务需要很长时间才能完成,有什么我可以改进的吗?让它更快更可靠?

您在存储连接时使用了错误的数据结构ArrayBlockingQueue是会减慢处理速度的FIFO结构,使用ConcurrentLinkedQueue是合理且快速的选择。

最新更新