qinguoyi / TinyWebServer

:fire: Linux下C++轻量级WebServer服务器
Apache License 2.0
16.94k stars 3.97k forks source link

connectionRAII类的作用是什么呢? #144

Closed QAQEthan closed 2 years ago

QAQEthan commented 2 years ago

我理解资源获得即初始化,为了防止资源泄露,但是该类没有提供任何的访问函数,两个成员变量也是私有的,我看到一些地方使用了这个类定义了对象,但是这个对象有什么用呢?代码中好像没有使用过

myAstar commented 2 years ago

在threadpool.h下的threadpool::run()里面有用到这个对request->mysql对象赋值,我的理解是通过这个类的封装,把数据库连接获取限制在类对象的作用域内,出了这个作用域就自动释放资源,也就是你说的防止资源泄露。有说错的地方还请指正。

QAQEthan commented 2 years ago

@myAstar 感谢解答,理解了!connectionRAII创建出的对象就是用来管理数据库连接防止资源泄露的,由于析构函数不用显式调用,所以看不出来被使用了