手记

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

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

  • 课程信息

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

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

主讲老师: 吴从周

  • 课程内容

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

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


0人推荐
随时随地看视频
慕课网APP