![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
mawood
这个作者很懒,什么都没留下…
展开
-
一种双向链表设计方法(C++)
leveldb源码实现的双向链表。 设计思想: <1>链表由表头和表元素构成 <2>表头是一个特殊的表元素 <3>元素从表尾插入 链表实现:class SnapshotImpl; class SnapshotList { public: SnapshotList() { list_.prev_ = &list_; list_.next_原创 2016-05-24 23:47:14 · 385 阅读 · 0 评论 -
RAII(资源创建即释放)
RAII是一种技术,利用了C++局部对象在跳出作用域时执行析构函数的机制,将一些资源的释放安排在析构函数中,保证安全的使用资源。 举个例子: A.h class A { public: A(int size); virtual ~A(); public: void SetMem(int size, char va原创 2016-05-31 22:44:27 · 400 阅读 · 0 评论 -
BOOST锁机制(1)
首先来看几个例子,这个几个例子都是错误的使用boost的mutex。根本原因是对加锁原理认识不清楚。 BAD1: ShareData.h用于定义共享数据#ifndef __SHARE_DATA_H__ #define __SHARE_DATA_H__namespace BOOST_TEST { class CShareData { public: CSha原创 2016-06-01 00:28:41 · 457 阅读 · 0 评论 -
boost线程同步(2)——条件变量(POSIX)
boost是一个优秀的跨平台c++库,既然是跨平台那么它肯定封装了许多与具体的操作系统相关的内容。比如,windows和linux在文件系统、线程操作等等上有许多的不同之处,而boost封装了其中的差异,以一种统一的方便用户操作的形式展现出来。 简单易用是一方面,还有一方面是boost既支持原有操作系统的功能,又在其上进行了扩展,使C++变得更加强大。 今天我们谈谈boost对条件变量的原创 2016-06-02 23:30:15 · 652 阅读 · 0 评论