为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第7天 C气象数据中心 13-8 数据库连接池的实现

标签:
C++

【九月打卡】第7天 C气象数据中心 13-8 数据库连接池的实现

  • 课程信息

课程名称:C/C++气象数据中心实战,手把手教你做工业级项目

课程章节:13-8 数据库连接池的实现

主讲老师: 吴从周

  • 课程内容

每连接每线程存在缺陷
使用数据库连接池的方法进行优化

  • 课程收获
    1.由于线程创建的时间和资源不算过大,相反是数据库的连接会制约程序的运行,在主进程中提前创建好n个数据库连接,每个线程需要用到数据库的时候,从数据库连接池中取一个空闲的连接,用完之后归还。
    2.需要加锁保护,类似于公共厕所的使用,数据库连接池中有多少个数据库连接,就需要有多少把锁进行加锁。只能用互斥锁,自旋锁不合适。
    3.数据库连接池的实现:先初始化数据库连接池,即将所有的connection连接上数据库,此时需要初始化互斥锁;再从数据库连接池中索取一个空闲的连接,即没有锁的连接,获取这个连接的地址,接下来释放/归还数据库连接,最后可以选择释放数据库连接占用的资源,即断开连接。
    4.从数据库连接池中索取一个空闲的连接中,选择通过加锁去发现空闲连接,轮询加锁失败之后,等待很短时间,继续进行轮询加锁操作,直到加锁成功。

图片描述

图片描述
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消