muduo C++网络库学习记录

本文探讨了muduo网络库的安全实践,包括对象构造和析构的线程安全措施,避免内存管理中常见的问题如缓冲区溢出、悬空指针等,并介绍了智能指针的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

muduo是基于非阻塞IO和事件驱动的C++网络库

对象的构造和析构:

1.对象构造要做到线程安全,唯一要做到的就是在构造期间不泄露this指针,即:

不要在构造函数中注册回调函数;

不要在构造函数中把this指针传递给跨线程的对象;

在执行构造函数的过程中,对象其实还是没有完成初始化,this指针的泄露会造成其他对象可以访问这个还没有创建好的对象,行为未可知

2.对于对象析构,要让析构函数按照本来的顺序依次执行,而不要并发执行。

本class成员的mutex对象只能同步和保护本class的其他数据成员的读写,并不能保护到析构函数


C++中可能出现的内存问题:

1.缓冲区溢出

2.悬空指针/野指针

3.重复释放

4.内存泄露

5.new和delete的调用不成对

6.内存碎片

智能指针(RAII原则)可以解决1~5

gdb thread apply all bt

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值