本文共 576 字,大约阅读时间需要 1 分钟。
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_;};