无锁队列
woshiyuanlei
精通服务器架构,网络通信,数据库操作,熟悉操作系统原理
展开
-
基于数组的无锁队列(译)
http://www.cnblogs.com/sniperHW/p/4172248.html 1 引言 最近对于注重性能的应用程序,我们有了一种能显著提高程序性能的选择:多线程.线程的概念实际上已经存在了很长时间.在过去,多数计算机只有一个处理器,线程主要用于将一个大的任务拆分成一系列更小的执行单元.以使得当其中某些执行单元因为等待资源而被阻塞的时候剩余的执行单元能继续执行。举个示转载 2016-05-10 11:53:12 · 904 阅读 · 0 评论 -
C++ 无锁队列 ABA <3>
上文原创 2016-05-20 13:55:23 · 629 阅读 · 0 评论 -
实现无锁的栈与队列(4)
实现无锁的栈与队列(4) 现在我们来尝试解决前一篇文章提到的问题。 (一) 首先是内存释放的问题。 这个问题乍看起来很棘手:我们现在要访问一段内存,但却不知道这段内存是否还合法,是否已被释放。怎么办呢?很直接的一个想法是,看看有没别的方式可以检查该内存是否还合法,这个想法很单纯,但从前面几篇文章的讨论我们得知,任何时候直接去碰队列上的节点都是不安全的,当前线程永远不知道下一秒后会发生了转载 2016-05-11 20:07:47 · 350 阅读 · 0 评论 -
巧夺天工的kfifo
http://blog.csdn.net/linyt/article/details/5764312 Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开发者能从基础的数据结构中,提炼出优美的特转载 2016-03-28 13:57:46 · 595 阅读 · 0 评论 -
互斥 临界区 自旋锁 排队自旋锁 MCSLOCK 性能简单测试
VS2013 #include #include #include using namespace std; DWORD dwTest; const DWORD dwMax = 20000000; //#define MY_CRITICAL //#define MY_MUTEX #define MY_SPINLOCK #ifdef MY_CRITICAL CRITIC原创 2016-05-23 12:01:39 · 1582 阅读 · 0 评论 -
一个无锁消息队列引发的血案(三)——地:q3.h 与 RingBuffer
http://www.cnblogs.com/shines77/p/4200127.html (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的艺术 [续] 无锁队列 第一篇文章末尾我们提到转载 2016-05-20 15:49:06 · 1998 阅读 · 0 评论 -
C++ 无锁队列 ABA <1>
实验环境:vs2013 新建一个无stdafx.h预编译头的控制台程序,然后复制以下代码 1、链表实现无锁队列 2、数组实现无锁队列 1、链表 #include #include #include #include #include using namespace std; #define CAS(a,b,c) (InterlockedCom原创 2016-05-10 18:13:26 · 2983 阅读 · 0 评论 -
C++ 无锁队列 ABA <2>
解决ABA问题原创 2016-05-11 19:21:13 · 1701 阅读 · 0 评论