参考资料:1 .浅谈Memory Reordering2.透过LINUX内核看无锁编程3.Why the "volatile" type class should not be useddfsdf4.锁的意义spinlock(自旋锁)lock-free(无锁编程)mutex(互斥锁)read_wri...
分类:
其他好文 时间:
2014-11-28 09:51:45
阅读次数:
185
当谈及 Lock-Free 编程时,我们常将其概念与 Mutex 或 Lock 联系在一起,描述要在编程中尽量少使用这些锁结构,降低线程间互相阻塞的机会,以提高应用程序的性能。类同的概念还有 "Lockless" 和 "Non-Blocking" 等。实际上,这样的描述只涵盖了 Lock-Free ...
分类:
其他好文 时间:
2014-10-24 09:15:55
阅读次数:
251
高并发的情况下,锁是一个灾难;那么架构是如何做到无锁编程的?...
分类:
其他好文 时间:
2014-10-16 02:38:16
阅读次数:
151
lock-free是一种基于原子变量类来构建的非阻塞同步算法。比较并交换(compare-and-swap)我们经常会先检查某项东西,然后对其进行修改,如if(X...) {X=...}。这种行为在多线程下并不是线程安全的。那我们该如何做呢?一种方法是对操作进行加锁,如synchornized(ob...
分类:
其他好文 时间:
2014-10-07 18:37:35
阅读次数:
151
AtomicStampedReference解决ABA问题
在运用CAS做Lock-Free操作中有一个经典的ABA问题:
线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:...
分类:
其他好文 时间:
2014-08-13 13:16:06
阅读次数:
204
By Andrei Alexandrescu, October 01, 2004
Post a Comment
Lock-free data structures guarantee the progress of at least one thread when executing mutlithreaded procedures, thereby helping you avoid d...
分类:
其他好文 时间:
2014-08-11 18:01:02
阅读次数:
384
无锁编程以及CAS
无锁编程 / lock-free / 非阻塞同步
无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Synchronization)。
实现非阻塞同步的方案称为“无锁编程算法”( Non-blocking algorithm)。
lock-free是目前最...
分类:
其他好文 时间:
2014-08-11 11:58:42
阅读次数:
321
非阻塞的程序 应该保障的一些特性 : 等待无关性wait-free:能确保每次的调用在有限的步数之内完成,不管其他调用的步骤有多少。杀掉几个线程 锁无关性lock-free:执行这段程序的某些线程会被延迟,但必须确保至少...
分类:
其他好文 时间:
2014-07-22 09:10:35
阅读次数:
374
关键词:
IOKING IOCP TCP Transmission Server Engine Lock Free Interlocked
云猴完成端口TCP通讯服务器引擎 无锁 原子锁(函数)
'IOKING' TCP Transmission Server Engine ('云猴'©TCP通讯服务器引擎)(预告版)
下载连接:
http://download.csd...
分类:
其他好文 时间:
2014-06-10 10:59:11
阅读次数:
157
There are two types of non-blocking thread synchronization algorithms
- lock-free, and wait-free. Their meaning is often confused. In lock-free systems, while any particular computation may be block...
分类:
其他好文 时间:
2014-05-21 10:27:20
阅读次数:
410