Linux 多线程服务端编程:使用 muduo C++ 网络库_学习

https://blog.csdn.net/Solstice/article/details/8493251
陈硕《Linux 多线程服务端编程:使用 muduo C++ 网络库》

线程安全的对象生命期管理

当析构函数遇到多线程

线程安全的定义 :
1.多个线程同时访问时,其表现出正确的行为
2.无论操作系统如何调度这些线程,无论这些线程的执行顺序如何交织
3.调用端无需额外的同步或者其他协调动作
根据定义,c++标准库里大多数class都不是线程安全的,包括string,std::vector,std::map。因为这些class通常都需要在外部加锁才可以供多个线程同时访问。

//A threa-safe counter
#include "boost/utility.hpp"
class Counter : boost::noncopyable 
{
	//copy-ctor and assiagnment should be private by default
	public:
		Counter() : valuse_(0){}
		int64_t value() const;
		int64_t getAndIncrease();
	private:
		int64_t value_;
		mutable MutexLock mutex_;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值