
C++多线程
文章平均质量分 80
哈维
Linux内核 分布式 数据库 oceanbase pnfs
展开
-
Hazard Pointer 改进设计——hazard version
Hazard Version1 lock free算法的内存回收问题hazard pointer算是比较通用也比较实用的内存回收机制,但是也有缺点,这里先介绍hazard pointer的做法,然后介绍一种改进方案。2 hazard pointer按hazardpointer的做法,一个节点要区分以下两种状态 retired:这个节点被删掉。在retire之后开始的操作原创 2014-09-28 09:06:43 · 2738 阅读 · 1 评论 -
多线程安全的滑动窗口设计实现
滑动窗口是日志模块重要的数据结构,用于日志发送接收以及日志索引查询,和组内同学讨论了的多线程安全的滑动窗口设计,有三种实现方案,写此文档记录下。原创 2014-09-24 14:14:58 · 2757 阅读 · 0 评论 -
以memcached为例理解乐观锁与悲观锁
我们知道,最常用的处理多用户并发访问的方法是加锁。当一个用户锁住数据库中的某个对象时,其他用户就不能再访问该对象。加锁对并发访问的影响体现在锁的粒度上。比如,放在一个表上的锁限制对整个表的并发访问;放在数据页上的锁限制了对整个数据页的访问;放在行上的锁只限制对该行的并发访问。可见行锁粒度最小,并发访问最好,页锁粒度最大,表锁介于2者之间。锁有两种:悲观锁和乐观锁。这个问题的来源是锁所保护的数据原创 2013-02-27 11:26:38 · 6660 阅读 · 0 评论 -
智能指针--shared_ptr&&weak_ptr
当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。 每次创原创 2013-02-25 17:27:17 · 916 阅读 · 0 评论