博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 多线程服务端编程:使用 muduo C++ 网络库_学习
阅读量:3905 次
发布时间:2019-05-23

本文共 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_;};
你可能感兴趣的文章
SublimeText, Eclipse, Liteide--Golang开发环境搭建(Windows版)
查看>>
Java 反射概述
查看>>
Java集合工具
查看>>
Java集合工具2--Arrays
查看>>
SpringMVC原理探索,从DispatcherServlet开始
查看>>
Golang学习笔记:语言规范之词汇元素和类型
查看>>
Golang学习笔记:语言规范之类型(续)
查看>>
Golang学习笔记:语言规范之声明与作用域
查看>>
Golang学习笔记:语言规范二
查看>>
Java ThreadPoolExecutor线程池原理及源码分析
查看>>
Java ThreadLocal原理与源码
查看>>
走近AbstractQueuedSynchronizer
查看>>
aqs
查看>>
Thinking in Spring
查看>>
Java IO模型&NIO
查看>>
Thinking in Netty
查看>>
Java TPS实现
查看>>
Log4j2写日志的艺术
查看>>
C++ Primer Plus 第六版学习笔记第三章
查看>>
c++ Primer Plus 第六版第四章学习笔记
查看>>