This is the area most people find confusing when looking at the memory model. Atomic variables are p...
最近一直在研究RocksDB的源码,非常多的原子操作涉及到内存序,之前由于用原子操作常常只是用作计数,在这种简单的场景下其实各个内存序是没有差异的。但是为何要有各种内存序呢? 我们首先来看下定义的内存...
之前我曾写过关于MESI的一篇文章,大体了解了下CPU在多核心下如何同步不同Cache中的数据的,尽可能在一些脏读的情况下尽量的提高性能,其中最主要的两个概念分别为 Store buffer 与 In...
Windows上vs开发惯了,突然迁移到linux下开发,Makefile得自己写,所以做下笔记。 基本规则 target: prerequisites ... command ... ... tar...
shared_ptr和weak_ptr 最近在读某书,发现自己有点儿落伍,c++的标准太老旧,以前各项目的代码基本都是裸指针。裸指针带来的很多的问题,也相当的头疼。 近两年主要在写golang,gol...
pthread_cond_wait与pthread_cond_signal简单笔记 前些日子很忙,昨天把手上的工作做的差不多后,就花了点时间充充电。 线程同步,临界区之类的就不讲了,那是比较简单的线程...
template中传入具体类型而不是typename的用法 最常用的template,往往是像以下类型的: template <typename T> void Func(T a) ......
C++11中的右值引用 C++11中新的标准比较多,牵扯到的概念也比较多,有些一开始听上去好玄乎,但是了解了它的产生是有道理的后就能比较好的理解了。 首先,右值引用这个概念感觉很难理解,它和引用有啥关...
( f[])())()" class="reference-link"> 简析令人头大的定义 void ( ( f[])())() 解析 在v2ex闲逛发现有人在谈怎么学习c语言,有人推荐tcpl,然...
使用宏的方式来格式化行号 我们已经知道,我们可以使用 __LINE__ 获得当前的行号 __FILE__ 获得当前的文件名 __FUNCTION__ 获得当前的函数名 这些在打印日志的时候十分常用,所...