澳门新葡亰娱乐网站-www.142net-欢迎您

澳门新葡亰娱乐网站是因为你还没有找到一条正确的致富之路,www.142net是将所有的游戏都汇集在一起的官方平台,因为澳门新葡亰娱乐网站这个网站当中有着大量的游戏攻略,托IP定位技术,传达终端直接到达的精准传播方式。

java线程之原子操作的贯彻原理,java原子操作的落

来源:http://www.bhtsgq.com 作者:计算机知识 人气:56 发布时间:2019-05-30
摘要:初稿地址: 后天在看kafka源码的时候有这么1段代码 简书占小狼 转发请表明原创出处,多谢! 澳门新葡亰35222,原子(atomic),本意是指“不能够被越来越划分的粒子”。原子操作表示

初稿地址:

后天在看kafka源码的时候有这么1段代码


简书 占小狼
转发请表明原创出处,多谢!

澳门新葡亰35222,原子(atomic),本意是指“不能够被越来越划分的粒子”。原子操作表示“不可被暂停的2个或壹密密麻麻操作”。

1. 引言

原子(atom)本意是“不可能被更加的细分的小不点儿粒子”,而原子操作(atomic operation)意为"不可被暂停的3个或一层层操作" 。在多管理器上贯彻原子操作就变得稍微复杂。本文让我们一起来聊1聊在英特尔管理器和Java里是怎么样落成原子操作的。

  val canStartup = isStartingUp.compareAndSet(false, true)

仿效书籍: <<java并发编程的秘诀>>
那篇文章是协和读书该书籍时的读书笔记

接下去一齐看看在AMD管理器和Java里是如何贯彻原子操作的。

java线程之原子操作的贯彻原理,java原子操作的落到实处原理。2. 术语定义

术语 英文 解释
缓存行 Cache line 缓存的最小操作单位
比较并交换 Compare and Swap CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较下旧值有没有发生变化,如果没有发生变化,才交换成新值,发生了变化则不交换。
CPU流水线 CPU pipeline CPU流水线的工作方式就象工业生产上的装配流水线,在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。
内存顺序冲突 Memory order violation 内存顺序冲突一般是由假共享引起,假共享是指多个CPU同时修改同一个缓存行的不同部分而引起其中一个CPU的操作无效,当出现这个内存顺序冲突时,CPU必须清空流水线。

内部地点的 isStartingUp 是 AtomicBoolean

原子操作(atomic operation)的定义

原子操作不可被中断的三个或一名目多数操作

术语定义

  • Cache line(缓存行)
  • Compare and Swap(相比并交流)
  • cpu pipeline(cpu流水线)
  • memory order violation(内部存款和储蓄器顺遂冲突)

叁. Computer如何兑现原子操作

三11个人IA-32管理器使用基于对缓存加锁或总线加锁的方法来促成多管理器之间的原子操作。

  private val isStartingUp = new AtomicBoolean(false)
管理器完毕原子操作的体制
  • 使用总线锁担保原子性
    所谓总线锁尽管利用微机提供的3个LOCK#复信号, 当七个管理器在总线上输出此连续信号时, 其余Computer的请求将被阻塞住, 那么该Computer能够独占共享内存;

  • 使用缓存锁担保原子性
    所谓缓存锁定是指内部存款和储蓄器区域假如被缓存在管理器的缓存行中, 并且在LOCK操作时期被锁定, 那么当它实施锁操作回写到内部存款和储蓄器时, 管理器不在总线上宣示LOCK#信号, 而是修改内部的内部存款和储蓄器地址, 并允许它的缓存一致性机制来确认保障操作的原子性;

计算机达成原子操作

当计算机读取内部存款和储蓄器的多个字节时,其余Computer不可能访问这一个字节的内部存款和储蓄器地址,最新的管理器能自动保证计算机对同样缓存行里开始展览16/32/6四个人的操作是原子的。管理器提供总线锁定缓存锁定的建制确认保证复杂内部存款和储蓄器操作的原子性。

本文由澳门新葡亰发布于计算机知识,转载请注明出处:java线程之原子操作的贯彻原理,java原子操作的落

关键词: Java java基础知识 IT共论 java进阶干货 葡京网上娱

上一篇:LinkedList源码分析

下一篇:没有了

最火资讯