开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4062|回复: 26
收起左侧

[易语言纯源码] MYSQL 简单连接池原理

[复制链接]
结帖率:63% (15/24)
发表于 2022-8-28 19:44:44 | 显示全部楼层 |阅读模式   湖南省长沙市
分享源码
界面截图: -
是否带模块: -
备注说明: -
不知道大神们线程池是怎么写的  我个人理解原理应该就是这样  用的自带的支持库里的名利演示的   没写 执行语句    直接用 自带的执行MYSQ
下面是源码  新建个类模块  粘贴进去就可以了     要手动八 程序集变量  赞贴到对应的地方


.版本 2
.支持库 EThread
.支持库 mysql
.支持库 spec

.程序集 MYSQL连接池
.程序集变量 连接池, 整数型, , "0"
.程序集变量 是否空闲, 逻辑型, , "0"
.程序集变量 许可证, 整数型
.程序集变量 许可证2
.程序集变量 是否结束, 逻辑型
.程序集变量 线程句柄, 整数型
.程序集变量 数量Q, 整数型
.程序集变量 地址Q, 文本型
.程序集变量 用户Q, 文本型
.程序集变量 密码Q, 文本型
.程序集变量 库Q, 文本型
.程序集变量 端口Q, 整数型

.子程序 连接, , 公开, 连接完后 启动一个线程  定期事件()      就是间隔多久空闲的线程 重新连接一下数据库   
.参数 数量, 整数型, , 要创建多少个句柄
.参数 地址, 文本型
.参数 用户, 文本型
.参数 密码, 文本型
.参数 库, 文本型, 可空
.参数 端口, 整数型
.局部变量 i, 整数型

是否结束 = 假

地址Q = 地址
用户Q = 用户
密码Q = 密码
库Q = 库
端口Q = 端口

许可证 = 创建进入许可证 ()
许可证2 = 创建进入许可证 ()
.计次循环首 (数量, i)
    加入成员 (连接池, 连接MySql (地址, 用户, 密码, 库, 端口))
.计次循环尾 ()
重定义数组 (是否空闲, 假, 取数组成员数 (连接池))
.计次循环首 (取数组成员数 (连接池), i)
    是否空闲 [i] = 真
.计次循环尾 ()
' 调试输出 (连接池)




.子程序 取空闲线程, 整数型, 公开, 取出一个空闲线程句柄  并改为非空闲状态   使用后  记得使用置空闲状态
.局部变量 i, 整数型

进入许可区 (许可证2)

.计次循环首 (取数组成员数 (连接池), i)
    .判断开始 (是否空闲 [i] = 真)
        是否空闲 [i] = 假
        ' 调试输出 (i, 连接池 [i])
        返回 (连接池 [i])
    .默认

    .判断结束

.计次循环尾 ()
退出许可区 (许可证2)
返回 (0)



.子程序 置空闲状态, 逻辑型, 公开
.参数 句柄, 整数型
.局部变量 i, 整数型

.计次循环首 (取数组成员数 (连接池), i)
    .判断开始 (句柄 = 连接池 [i])
        是否空闲 [i] = 真
        返回 (真)
    .默认


    .判断结束

.计次循环尾 ()
返回 (假)


.子程序 销毁连接池, 逻辑型, 公开
.局部变量 i, 整数型

是否结束 = 真
.计次循环首 (取数组成员数 (连接池), i)
    调试输出 (连接池 [i])
    断开MySql (连接池 [i])
    连接池 [i] = 0
.计次循环尾 ()
强制结束线程 (线程句柄)
重定义数组 (连接池, 假, 0)
返回 (真)


.子程序 定期事件, , 公开
.参数 间隔, 整数型, , 间隔多少面 重新获取 句柄
.局部变量 i, 整数型

处理事件 ()
进入许可区 (许可证)
.判断循环首 (取反 (是否结束))
    延迟 (间隔 × 1000)
    .如果真 (是否结束 = 真)
        跳出循环 ()
    .如果真结束

    .计次循环首 (取数组成员数 (连接池), i)
        .判断开始 (是否空闲 [i] = 真)  ' 此线程句柄  空闲就 重新连接一下
            是否空闲 [i] = 假
            连接池 [i] = 连接MySql (地址Q, 用户Q, 密码Q, 库Q, 端口Q)
            是否空闲 [i] = 真
            ' 调试输出 (i, 连接池 [i])
        .默认

            .判断循环首 (取反 (是否空闲 [i]) = 真)  ' 如果不空闲就等待到空闲为止
                延迟 (100)
            .判断循环尾 ()
            是否空闲 [i] = 假
            连接池 [i] = 连接MySql (地址Q, 用户Q, 密码Q, 库Q, 端口Q)
            是否空闲 [i] = 真
            ' 调试输出 (i, 连接池 [i])


        .判断结束

    .计次循环尾 ()

.判断循环尾 ()




退出许可区 (许可证)







MYSQL 线程池.e

8.59 KB, 下载次数: 59, 下载积分: 精币 -2 枚

看不懂 文字版的 点这里下载源码

评分

参与人数 2好评 +1 精币 +5 收起 理由
易语言资源网 + 1 + 3 开源精神必须支持~
kyo9766 + 2 感谢分享,很给力!~

查看全部评分


签到天数: 19 天

发表于 2023-6-20 13:53:05 | 显示全部楼层   四川省成都市
回复 支持 反对

使用道具 举报

发表于 2023-5-30 15:17:44 | 显示全部楼层   黑龙江省牡丹江市
开源精神必须支持~
回复 支持 反对

使用道具 举报

发表于 2023-5-3 21:01:36 | 显示全部楼层   山西省运城市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:50% (2/4)

签到天数: 2 天

发表于 2022-10-6 04:26:06 | 显示全部楼层   广东省深圳市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2022-9-20 21:28:41 | 显示全部楼层   广东省广州市
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2022-9-17 13:00:33 | 显示全部楼层   新疆维吾尔自治区石河子市
学习学习
回复 支持 反对

使用道具 举报

结帖率:63% (15/24)
 楼主| 发表于 2022-9-5 16:27:57 | 显示全部楼层   上海市上海市
千面萌萌 发表于 2022-8-29 21:52
bug: 1、方法 取空闲线程  中间直接返回时候需要退出许可区 2、取空闲线程用了许可证,置空闲状态 也应该用 ...

老铁说的对!我只是用半小时临时做的一份列子   很多考虑不周地方!不过 原理是这样的
回复 支持 反对

使用道具 举报

签到天数: 15 天

发表于 2022-9-2 13:36:42 | 显示全部楼层   江苏省连云港市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:17% (1/6)

签到天数: 17 天

发表于 2022-9-2 12:12:27 | 显示全部楼层   广东省佛山市
开源精神必须支持
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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