吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1209|回复: 4
收起左侧

[求助] 求助大佬解惑:MyBatis 空闲池与活动池的问题

[复制链接]
XT0624 发表于 2020-4-29 19:44
本帖最后由 XT0624 于 2020-4-29 19:56 编辑

https://www.cnblogs.com/mkl7/p/10745912.html

如果  空闲池  还有连接   的话直接拿一个出来用,   如果  空闲池  没有可用的连接 ,  会查看  活动池中的连接  是否已经达到  最大数量    如果  活动池中的连接  没有  达到最大数量, 会创建一个新的连接    如果活动池中的连接已经达到最大数量, 会判断活动池中哪个是最先进来的(Oldest), 然后对该链接进行处理并返回


问题是:如果空闲池容量为10 并且他们都被使用了 那么他们不是都被放到活动池里了么?这个时候活动池应该也满了。为什么还有空闲池里面没有可用连接,活动池还没有到达最大数量这个概念?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

井右寺 发表于 2020-4-30 08:39
没用过你说的这个东西
不过以连接池概念来看的话
从池里取连接时,空闲池抛出一个连接,让该连接进入活动池
之前设计的一个连接池时这样子
建立了一个连接池,初始化N个连接放入连接池。当有外部进行连接获取时,连接池扔出一个连接(准确的说是空闲池扔出一个连接,连接池对象里面有两个list,一个空闲池,一个活动池,一个连接只能待在一个池里面)
取连接的时候,会先判断空闲池是否还存在可用连接,如果不存在,判断当前已经创建的连接是否已经到达 设置的最大连接数,如果没有,新建一个连接,并抛出,否则扔出一个繁忙报错(我之前是人的繁忙,连接的强制回收没做,看你用的这个东西,应该是有自己的强制回收的)

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
XT0624 + 2 + 1 热心回复!

查看全部评分

 楼主| XT0624 发表于 2020-5-2 10:57
井右寺 发表于 2020-4-30 08:39
没用过你说的这个东西
不过以连接池概念来看的话
从池里取连接时,空闲池抛出一个连接,让该连接进入活动 ...

我的困惑是:空闲池和活动池是一样大的吗?
如果规定必须一样大,那么查到空闲池没有了可用连接,那么活动池也一定满了,再去查一下,也没有意义。感觉好像做了一步无用功。
如果是不一样大的,那么查到空闲池没有了可用连接,再去先查一下活动池是不是也满了,这个操作我还可以理解。
井右寺 发表于 2020-5-6 13:04
XT0624 发表于 2020-5-2 10:57
我的困惑是:空闲池和活动池是一样大的吗?
如果规定必须一样大,那么查到空闲池没有了可用连接,那么活 ...

应该是不一样大的
之前我的逻辑是 允许最大连接数超出 空闲池大小
当空闲池进行连接回收的时候,根据一定的规则,决定是否将正在回收的这个连接销毁还是重新入池
即允许连接数有一定上浮,上浮完的连接使用完成后 可能会直接销毁也有可能继续入池并再次被取用
井右寺 发表于 2020-5-6 13:14
XT0624 发表于 2020-5-2 10:57
我的困惑是:空闲池和活动池是一样大的吗?
如果规定必须一样大,那么查到空闲池没有了可用连接,那么活 ...

另外,我不太理解为什么需要去查一次
整个连接池对象 是可以维护一个全局状态的,直接查询状态就好啦,没必要去单独遍历 空闲池或者活动池的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 03:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表