Atomic是指不能分割成若干部分的意思。如果一段代码被认为是 Atomic,则表示这段代码在执行过程中,是不能被中断的。通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中 断,直到其执行完成).
Atomic的原理是:CAS(比较并交换)。现在大多数的处理器都提供对并发 访问的支持,这个支持的反映方式就是提供硬件的指令支持多处理的特殊需求。比如检测或者阻止其它处理器的并发访问来更新共享变量的 指令。对于 Intel x86架构的处理器来说就是通过提供实现CAS或者比较并设置的硬件原语指令集。CAS操作的三个操作数:内存位置(V) ,预期原值(A)和新值(B)。执行的过程通常是:预测内存地址V应该包含值A,如果包含则将值B替换到位置V;否则,不更改任何值,告 知地址V的当前值。CAS对待“读-修改-写”的操作一般是检测这个过程是否有其它的线程在修改变量,如果有那么这次的CAS操作失败, 可以尝试重新进行CAS。讲到这里似乎感觉比 Synchronized还复杂,是否意味着成本不小呢?答案是否。因为它是硬件原生实现的,极为轻 量级的无锁同步方式。就好像高清解码一样,GPU原生硬件解码比软解的CPU占用优势那是相当的不一样啊!
JDK1.5的原子包:java.util.concurrent.atomic
这个包里面提供了一组原子类。其基本的特性就是在多线程环境 下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一 样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入,这只是一种逻辑上的理解。实际上是借助硬件的相关指令来实现的,不会阻塞线程(或者说只是在硬件级别上阻塞了)。其中的类可以分成4组
-
AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference
-
AtomicIntegerArray,AtomicLongArray
-
AtomicLongFieldUpdater,AtomicIntegerFieldUpdater,AtomicReferenceFieldUpdater
-
AtomicMarkableReference,AtomicStampedReference,AtomicReferenceArray
相关推荐
atomic
Atom-Atomic-Monokai-Syntax.zip,A Monokai-flavored syntax highlighting theme for Atom作为一个长期的优秀文本用户,我已经过渡到使用atom作为我的代码编辑器,虽然我喜欢它更易破解的方面,但我并没有找不到一个...
主要研究四种变量(属性)的存取速度. volatile nonatomic atomic和正常变量
Atomic Alarm Clock是 Clock Tray Skins 的同胞软件,具有 Clock Tray Skins 的全部功能,可以替换美化并增强系统自带的任务栏时钟,显示的时间更加仔细,包含月、日、星期、时、分与秒及日历显示、时区等,界面漂亮...
来自BOOST库的原子操作atomic的源代码,跨平台
atomic_ops原子操作1
《Docker容器 利用Kubernates Flannel Cockpit和Atomic构建和部署》
前端开源库-atomic-batcher原子批处理程序,一个简单的批处理函数,允许您自动批处理一系列操作。
不错的时钟工具,带闹铃,日历,可置顶 Atomic Alarm Clock.rar
systemd-208-99.atomic.0.el7.x86_64.rpm
ATOMIC:an atlas of machine commonsense for if-then reasoning中的数据集
ZooKeeper’s atomic broadcast protocol 翻译版
Atom-atomic-blonde.zip,SourceKit-based syntax highlighting for the Swift languageAtomic Blonde是一种基于SourceKit的用于Swift语言的语法增强器。与由正则表达式语法支持的highlighter不同,atomic blonde调用...
angular-atomic-notify, angular.js 应用程序的原子咆哮通知 angular-atomic-notify一个用于显示通知的AngularJS模块 依赖项我们使用这个库作为示例,注意jQuery用于 angular.element 和 Font Awesome 图标,但是你...
Introduction to quantum optics and modern atomic physics. The basic concepts and theoretical tools will be introduced. Topics will include coherence phenomena, non-classical states of light and matter...
Atomic CSS增量更新的设计与实现,刘灿,沈奇威,(1)针对Atomic CSS全量更新过程中耗费时间、流量较大的问题,提出一种增量更新方案。该方案将CSS内容与版本信息分别保存于浏览器Loca
资源来自pypi官网。 资源全名:atomic-queue-1.0.1.tar.gz
Problems And Solutions On Atomic, Nuclear, And Particle Physics Problems And Solutions On Atomic, Nuclear, And Particle Physics Problems And Solutions On Atomic, Nuclear, And Particle Physics
dll控件常规安装方法(仅供参考): 一、如果在运行某软件或编译程序时提示缺少、找不到dll等类似提示,您可将下载来的dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用...