热门
最新
红包
立Flag
投票
同城
我的
发布
麦田上的字节
6 年前
trueweixin_41937552
为赚钱掏空了身体、秃了头发、肥了肚腩,忍受了各种委屈和鄙夷,可结果是,不仅每月的工资存不下来,还经常在负债的边缘徘徊!
下一条:
讲解下原子操作,以及如何在程序中实现对共享变量执行的操作是具备原子性的。首先,原子这个概念,在化学反应中指的是不可再被分割的基本微粒,体现在程序中,所表达的含义是不会被线程的调度机制所打断的操作,事务从开始执行到最终结束,中间不会发生任何的线程上下文切换。像Redis这种单线程模型,与生俱来就具备原子性,而在并发环境下,对共享资源的访问,我们却往往需要通过CAS(Compare And Swap,比较与交换)机制或Synchronized语句来保证线程安全。其实CAS机制底层是通过CPU指令集(比如:IA64或x86指令集中的cmpxchg指令)来实现原子操作的。在Java语法层面上,JDK1.5之后的java.util.concurrent.atomic包下已经提供有开箱即用的AtomicInteger、AtomicLong,以及AtomicReference等诸多原子操作类,使得开发人员能够以一种非常简单的方式在并发环境下实现对共享变量的原子操作。
立即登录