BeeCP(小蜜蜂连接池)2.4.4版本连接安全关闭优化,涉及以下几个点
* Connection.close方法的背后,就是触发连接释放,并传递给等待者。不清楚 光连接池,Tomcat-JDBC等主流连接池是否存在这个问题?不增加安全措施,一个连接可能会被释放多次,有可能传递给多个等待者,想想同一个连接被多个线程借走后,后果严重不?,这个发布算是给大家一个提醒/预警。 2:借用者持有连接并长时间不使用,因此池强制回收 在连接池强制回收的那一刻,持有线程是有可能突然归还连接的,在这一刻点(临界点并发)上讲:要么成功回收,要么借用者成功释放 3:连接池重置,清空所有连接,强制关闭所有连接 对于正在使用中连接,依据策略进行关闭 A:等它释放后再关闭,B:直接关闭它,这个过程通样存在临界点并发问题 ,因此需要安全性关闭
|