码迷,mamicode.com
首页 >  
搜索关键字:无锁    ( 351个结果
一个高性能无锁哈希表的设计和实现
无锁哈希表(Lock-FreeHashTable)是多线程编程中的理想数据结构,但是实现以及使用都需要一定的技巧。作者对此做了一个巧妙的设计实现,在现代X86平台上能取得千万次每秒的并发查找/增加/删除操作。通过考察各种基于CAS原子操作的无锁数据结构实现,目前公认可实现无锁安全的数..
分类:其他好文   时间:2015-03-17 12:41:41    阅读次数:284
一种分布式框架设计(三)
本文讨论在分布式框架中使用到的两个数据结构。为了实现高性能,这两个数据结构都是无锁的。 第一个数据结构存储的是客户端发过来的socket。由于我们的框架只有一个线程接受用户的请求,所以很容易对每一个socket创建一个unique number(稍候我们再来看unique number包含了哪些信息)。框架中有一个线程专门来做清理工作,同时关闭没有返回给客户端的socket。最后框架中有多个线程...
分类:其他好文   时间:2015-03-09 19:11:26    阅读次数:169
再看无锁环形队列
今天通过打印头和尾的值来看里面的规律,数学不好真看不懂下面的意思int size = (m_nTail - m_nHead + MAX_LEN) % MAX_LEN;int size = (m_nHead - m_nTail + MAX_LEN - 1) % MAX_LEN;但通过打印头和尾的值能发...
分类:其他好文   时间:2015-02-24 20:58:10    阅读次数:211
4.锁--无锁编程以及CAS
无锁编程以及CAS无锁编程 / lock-free / 非堵塞同步无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被堵塞的情况下实现变量的同步,所以也叫非堵塞同步(Non-blocking Synchronization)。实现非堵塞同步的方案称为“无锁编程算法”(Non-bl...
分类:其他好文   时间:2015-02-18 11:48:49    阅读次数:198
C++ boost库无锁队列多线程并行测试与编译方法
作为C++11 STL参考实现的boost库,不仅支持11标准,而且做了许多扩展,掌握其使用方法,对于提高代码质量,尤其重要。以其多线程并行无锁队列为例,结合代码和说明,演示了无锁boost库的使用和编译方法。...
分类:编程语言   时间:2015-01-31 07:13:32    阅读次数:421
一个无锁消息队列引发的血案(六)——RingQueue(中) 休眠的艺术 [续]
这是第五篇的后续,紧接上一篇的末尾,我们把 Windows 和 Linux 下的休眠策略归纳总结一下。我们可以看到,Linux 下的 sched_yield() 虽然包括了 Windows 下的 Sleep(0) 和 SwitchToThread() 的部分功能(图中蓝色框和虚线框所标注的部分),但...
分类:其他好文   时间:2015-01-31 00:07:37    阅读次数:309
dpdk基础模块之rte_ring
rte_ring是一个无锁队列,无锁队列的出队入队操作是rte_ring实现的关键。因此,本文主要讲解dpdk是怎样使用无锁机制实现rte_ring的多生产者入队操作。 rte_atomic32_cmpset()称为CAS(compare and set)操作,是无锁队列实现的关键,实现的伪代码如下...
分类:其他好文   时间:2015-01-24 18:43:29    阅读次数:928
Scala程序设计-Java虚拟机多核编程实践(一)
对象一旦创建出来,就不再改变其内容,这样的对象是不变的。这样做可以无需顾虑多线程访问对象时的竞争管理,Java的String就是不变对象的一个例子。基于此,使用Scala创建多线程应用时,可以用不变状态(immutable state)编写无锁代码,从而写出简洁的多线程代码,而无需顾虑线程间的数据竞争,以及处理加锁和释放带来的梦魇。JVM上的其他语言Groovy、JRuby、Clojure怎么...
分类:编程语言   时间:2015-01-21 15:12:56    阅读次数:272
12306这样的超大规模实时事务系统到底应该怎么设计?其实不难
12306这样的超大规模实时事务系统到底应该怎么设计? % 听说阿里要帮助12306重新设计订票系统,不过12306这个系统就真有这么难吗?是那些写软件的没有好好思考这个问题吧? 显然,12306这个系统不同于一般的关系数据库,做系统架构设计必须考虑实际的应用业务流程和数据本身的性质才行。 这么说吧,我不觉得这个问题有多困难,为了设计好这个系统,下面的几条是需要考虑的: ...
分类:其他好文   时间:2015-01-17 18:13:02    阅读次数:168
Java并发之CopyOnWriteArrayList
CopyOnWriteArrayList是线程安全的、并且读操作无锁的ArrayList。不像ArrayList默认初始化大小为10的Object[],CopyOnWriteArrayList默认初始化大小为0的Object[]1,add(E)add方法没有给整个方法加synchronized关键字...
分类:编程语言   时间:2015-01-15 19:47:19    阅读次数:213
351条   上一页 1 ... 28 29 30 31 32 ... 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!