转自:http://blog.csdn.net/kangroger/article/details/47867269 定义 无锁编程是指在不使用锁的情况下,在多线程环境下实现多变量的同步。即在没有线程阻塞的情况下实现同步。这样可以避免竞态、死锁等问题。 原理 CAS是指Compare-and-swa ...
分类:
其他好文 时间:
2017-02-27 01:19:28
阅读次数:
278
无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Synchronization)。 实现非阻塞同步的方案称为“无锁编程算法”( Non-blocking algorithm)。 多线程编程条件下,多个线 ...
分类:
其他好文 时间:
2017-02-19 23:36:26
阅读次数:
170
AtomicInteger中 维护了一个变量 volatile int value; AtomicLong中 维护了一个变量 volatile Long value; ...
分类:
其他好文 时间:
2017-01-10 13:29:22
阅读次数:
177
synchronized既保证原子性,又保证内存可见性,是一种线程同步的方式,是锁机制的一种java实现。synchronized的实现基于JVM底层,JVM是基于monitor实现的,而monitor的实现依赖于操作系统的互斥实现。 ...
分类:
其他好文 时间:
2016-12-18 10:06:03
阅读次数:
316
关于程序并发是老生常谈的话题了,工作中也经常去碰到,有必要来总结一下,其实并发与之关联的解决办法就是锁,加锁会消耗程序的性能和一些资源这是肯定的,当然如果能利用本身的原子性操作(指令的完整执行,在执行期间并不会被其他线程去中断,也不会存在上下文的切换),实现无锁编程是最好的。 1.防止重复请求 最近 ...
分类:
其他好文 时间:
2016-12-11 18:36:08
阅读次数:
158
本文只是凭记忆,记录大致的步骤,提供线索。 准备 刷机包和supersu刷机包,到xiaomi.eu上下载, 如果是稳定版可能有锁bootloader,需要到下载解锁软件。开发版无锁 刷入recovery 在twrp的官网上有适配hennessy的版本:twrp-3.0.2-1-hennessy.i ...
分类:
其他好文 时间:
2016-12-07 01:20:54
阅读次数:
570
官网:www.zeromq.org 消息队列比较:http://www.cnblogs.com/charlesblc/p/6058799.html zeromq的一些观点:http://www.cnblogs.com/my_life/articles/5293176.html 1.ZeroMQ是一个 ...
分类:
编程语言 时间:
2016-12-02 16:16:54
阅读次数:
330
cas在loop抢占的时候,会大量消耗cpu,在x86指令集下,可以用pause指令来减少loop的消耗。 cas锁在极高并发时候,会有非常大的帮助,相反,并发不高或者抢占时间过长,则千万不要用cas无锁。 以上代码只能在x86下编译,x64不能通过,需要重写pause指令实现。 ...
分类:
其他好文 时间:
2016-11-19 07:46:14
阅读次数:
775
面向磁盘设计的存储软件不需要考虑竞争锁带来的性能影响。磁盘存储软件的性能瓶颈点在于磁盘,磁盘抖动会引入极大的性能损耗。因此,传统存储软件的设计不会特别在意处理器的使用效率。曾经对一个存储虚拟化软件进行性能调优,在锁竞争方面做了大量优化,最后也没有达到性能提..
分类:
其他好文 时间:
2016-10-05 01:19:35
阅读次数:
189