继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

一点积分
关注TA
已关注
手记 29
粉丝 6
获赞 2

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

  • 课程信息

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

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

主讲老师: 吴从周

  • 课程内容

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

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

图片描述

图片描述
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP