码迷,mamicode.com
首页 >  
搜索关键字:lock-free    ( 51个结果
无锁数据结构(Lock-Free Data Structures)
一个星期前,我写了关于SQL Server里闩锁(Latches)和自旋锁(Spinlocks)的文章。2个同步原语(synchronization primitives)是用来保护SQL Server里的共享数据结构,例如缓存池里的页(通过闩锁(Latches)),锁管理器哈希表里的锁(通过自旋锁...
分类:其他好文   时间:2015-08-01 08:50:26    阅读次数:147
无锁有序链表的实现
无锁有序链表可以保证元素的唯一性,使其可用于哈希表的桶,甚至直接作为一个效率不那么高的map。普通链表的无锁实现相对简单点,因为插入元素可以在表头插,而有序链表的插入则是任意位置。 本文主要基于论文High Performance Dynamic Lock-Free Hash Tables实现。 主要问题 链表的主要操作包含insert和remove,先简单实现一个版本,就会看到问题所在,以...
分类:其他好文   时间:2015-05-05 21:59:41    阅读次数:195
并行编程中的内存回收Hazard Pointer
接上篇使用RCU技术实现读写线程无锁,在没有GC机制的语言中,要实现Lock free的算法,就免不了要自己处理内存回收的问题。 Hazard Pointer是另一种处理这个问题的算法,而且相比起来不但简单,功能也很强大。锁无关的数据结构与Hazard指针中讲得很好,Wikipedia Hazard pointer也描述得比较清楚,所以我这里就不讲那么细了。 一个简单的实现可以参考我的gith...
分类:其他好文   时间:2015-05-03 22:11:14    阅读次数:158
Michael-Scott非阻塞队列(lock-free)算法的C实现
Michael-Scott非阻塞队列算法,即MS-queue算法,是1 9 9 6 年由Maged . M .Michael and M. L. Scott提出的,是最为经典的并发FIFO队列上的算法,目前很多对并发FIFO队列的研究都是基于这个算法来加以改进的。在共享内存的多核处理器上,这种基于C...
分类:编程语言   时间:2015-04-24 23:56:56    阅读次数:1878
ConcurrentLinkedQueue原码解析
ConcurrentLinkedQueue是一个基于单链表的无界线程安全队列,该队列是FIFO的。ConcurrentLinkedQueue/ConcurrentLinkedDeue和LinkedBlockingQueue/LinkedBlockingDeue 相比,不同点在于它们不提供阻塞功能,并且是Lock-Free的,而后者则是利用ReentrantLock实现的。...
分类:其他好文   时间:2015-04-14 19:50:08    阅读次数:312
IOKING MsgEngine无锁消息引擎(no-lock)
关键词: no-lock interlocked lock-free tcp/ip server engine iocp server out-of-orderexecution 无锁 原子锁 原子操作 原子指令 锁无关 开放锁 通讯服务器 引擎 高并发 大数据 搜索引擎 完成端口服务器 cpu乱序并行执行 内存栅栏 IOKING MsgEngine无锁消息引擎(no-loc...
分类:其他好文   时间:2015-04-09 21:56:40    阅读次数:205
MPSC lock free queue
[c实现的队列](http://www.1024cores.net/home/lock-free-algorithms/queues/non-intrusive-mpsc-node-based-queue) 下面是akka实现的一个MPSC队列。 PS: 代码中注释对链头链尾判定的标准是添加的元素所在的位置...
分类:其他好文   时间:2015-03-02 11:28:32    阅读次数:338
跳表与并行
跳表,并行友好,lock-free
分类:其他好文   时间:2015-02-26 16:18:37    阅读次数:149
4.锁--无锁编程以及CAS
无锁编程以及CAS无锁编程 / lock-free / 非堵塞同步无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被堵塞的情况下实现变量的同步,所以也叫非堵塞同步(Non-blocking Synchronization)。实现非堵塞同步的方案称为“无锁编程算法”(Non-bl...
分类:其他好文   时间:2015-02-18 11:48:49    阅读次数:198
一个无锁消息队列引发的血案:怎样做一个真正的程序员?(四)——月:关于RingQueue(上)
上一篇分析了 Sinclair 的 q3.h 的原理,以及根据网友 korall 的提醒,我们可以看到,q3.h 的 push() 前半部分领号的过程是 lock-free 的,这里 lock-free(无锁) 的定义是指假如有一个线程在领号的过程中被无限休眠或崩溃(假设存在崩溃的可能性),也不会造...
分类:其他好文   时间:2015-01-08 14:59:25    阅读次数:255
51条   上一页 1 2 3 4 5 6 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!