精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-22
很多时候都是自问自答,呵呵
"spring或者hibernate或者其他什么的,在回收某个线程的Con时,同时会把ThreadLocal里与它对应的con变为空" 是这样的么? 能查到源码么? 因为最近也在接触这个~ |
|
返回顶楼 | |
发表时间:2009-04-22
这个问题就交给楼上吧,呵呵。我比较懒。
|
|
返回顶楼 | |
发表时间:2009-04-22
殊不知 我比你更懒!
|
|
返回顶楼 | |
发表时间:2009-04-23
那我们交给其他网友,看看如何
|
|
返回顶楼 | |
发表时间:2009-04-24
看看对象池模式你们就了解了。
什么时候回收对象(连接,或者线程或者其他什么东西)是取决于策略的。 就好比Java的垃圾回收,如果你实现不好,可能会出现很多问题。 我想如果是我实现,我肯定会用个守护线程来观察各个对象的状态。 如果对象被关闭了,或者超时了,那么守护线程就回收这个对象。所以很多 池都有个超时设置的。如果你的程序可能长时间使用一个对象,那么这个时间就最好设置长点。 第二个问题connection.close重写后只是设置某个连接的状态,而不是真正的去关闭这个连接。你要做的只是使用它。而管理它的任务就交给这个pool来吧。 |
|
返回顶楼 | |
发表时间:2009-06-26
一个conn肯定只能同时被一个事务使用。
所谓的 共用一个conn 其实是:可被多个多个事务或者请求使用 但是不是同时。 还有,如果一个事务a 现在使用链接conna ,在使用 conna.close() 显示的放回链接池 或者长时间不使用自动的被连接池 回收后, 当事务a 再次需要链接的时候调用的不一定再是conna 。 可以说是 连接池维持的等待链接的conn里面随机取得。 |
|
返回顶楼 | |
发表时间:2009-06-26
嗯,这个主题可以结贴了.
|
|
返回顶楼 | |