源码分析
CodeBoy975
你不对自己狠一点,生活将会对你狠一点
展开
-
volatile的特性及原理分析
先说特点:1 保证了所修饰变量的内存可见性2 防止指令重排3 修改的变量不具有原子性可见性可见性: 某线程修改共享变量的指令对其他线程来说是可见的,它反映的是指令执行的实时透明度。简单来说:当一个线程修改了变量的值,新的值会立刻同步到主内存当中。而其他线程读取这个变量的时候,也会从主内存中拉取最新的变量值。每个线程都有独占的内存区域,入操作栈、本地变量表等。线程的本地内存保...原创 2019-07-19 13:38:20 · 341 阅读 · 0 评论 -
CAS机制
本文来自程序员小灰公众号,本来笔者想自己写,但发现该文章写的通俗易懂,自己写未必能够比该文章好,故直接搬运过来,方便以后的复习回顾。先看一段程序:启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果是什么呢?一定会是200吗?这个代码是线程不安全,所以最终结果很可能会小于200;加锁之后代码:加了同步锁之后,count自增的操作变成...转载 2019-07-19 13:49:04 · 227 阅读 · 0 评论