花费 10 ms
线程安全的无锁RingBuffer的实现【一个读线程,一个写线程】

在程序设计中,我们有时会遇到这样的情况,一个线程将数据写到一个buffer中,另外一个线程从中读数据。所以这里就有多线程竞争的问题。通常的解决办法是对竞争资源加锁。但是,一般加锁的损耗较高。其实,对于 ...

Sat Nov 22 20:11:00 CST 2014 12 28966
实现无锁的栈与队列(3)

怎样实现一个无锁队列,网络上有很多的介绍,其中流传最广,影响最大的恐怕就属于以下两篇论文: a) "Implementing lock free queue" by John.D.Valois ...

Mon Jul 08 03:15:00 CST 2013 6 8166
Linux多核并行编程关键技术

多核并行编程的背景 在摩尔定律失效之前,提升处理器性能通过主频提升、硬件超线程等技术就能满足应用需要。随着主频提升慢慢接近撞上光速这道墙,摩尔定律开始逐渐失效,多核集成为处理器性能提升的主流手段。现 ...

Wed Jun 13 18:20:00 CST 2018 1 2238
实现无锁的栈与队列(4)

现在我们来尝试解决前一篇文章提到的问题。 (一) 首先是内存释放的问题。 这个问题乍看起来很棘手:我们现在要访问一段内存,但却不知道这段内存是否还合法,是否已被释放。怎么办呢?很直接的一个想法是 ...

Fri Aug 09 06:26:00 CST 2013 6 5264
实现无锁的栈与队列(1)

为了实现一个快速无锁的 logging 模块, 这几天花了不少时间去了解怎样实现一些无锁的操作及与之相对应的数据结构。对多线程场景下的无锁操作的研究一直是个热点,理想中的无锁操作,它应能天然地避开有锁 ...

Mon Jul 01 07:59:00 CST 2013 8 4007
死磕 java魔法类之Unsafe解析

问题 (1)Unsafe是什么? (2)Unsafe只有CAS的功能吗? (3)Unsafe为什么是不安全的? (4)怎么使用Unsafe? 简介 本章是java并发包专题的第一章,但是第 ...

Mon May 06 09:01:00 CST 2019 0 968
死磕 java并发包之AtomicInteger源码分析

问题 (1)什么是原子操作? (2)原子操作和数据库的ACID有啥关系? (3)AtomicInteger是怎么实现原子操作的? (4)AtomicInteger是有什么缺点? 简介 At ...

Tue May 07 08:21:00 CST 2019 0 838
实现无锁的栈与队列(2)

书续上回:实现无锁栈与队列(1) 对于下面这个看起来很美好的无锁栈: 我们仔细看一下它的 Push 操作,cas 保证了对 top 的更新是安全,原子的,但是数据的更新呢?这里把 ...

Mon Jul 01 21:20:00 CST 2013 4 3458

 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM