想知道小蜜蜂连接池(BeeCP)性能为啥这么高吗?
相信很多看过小蜜蜂(BeeCP)连接池的性能对比图的网友都会觉得惊讶不已,这比被号称史上最快的光连接池还快啊,简直不可思议!想知道它性能强悍的原因吗?今天就为大家解开这个谜团。 连接借用 故事还是要从连接池本身说起,连接池技术是一门古老的IT技术,其本质并不复杂,其工作原理类似图书馆,只不过它借出/回收的是连接对象,在连接池类内部一般至少有两条列表,第一条存放连接对象(类似书架),第二条存放等待者线程(或隐式), 如果连接都被借光了,借用者只能排队等待其他借用者归还,等待过程中,某些等待者可能会因为时间达到最大允许时刻点,则会退出等待,这种离开现象叫等待超时。 传递与队列 借用在使用完毕后将被关闭(实际关闭只是代理对象而已),背后自动触发连接池对连接的回收,如果在池中存在等待者,那么连接池将回收过来的连接传递给等待者,这是一件很有意思的事情,各连接池的性能的差异,很大一部分是由传递的速度导致的(谁的传递效率高,谁的性能更强),传递的方式通常是借助于同步队列的管道推拉方式完成的,比如Tomcat-JDBC使用的是闲/忙两条队列,光连接池采用的是同步队列(SynchronousQueue)...



