-
synchronized除了能够保持原子性之外,还能保证可见性。
查看全部 -
可见性的实现方式。
查看全部 -
可见性的概念
查看全部 -
可见性定义:
查看全部 -
课程总结很好
查看全部 -
volatile变量读写的详细过程
查看全部 -
volatile保证实现内存可见性的原理
两个机制,加入内存屏障和禁止指令重排序
写操作时,通过在写操作指令后加入一条store屏障指令,让变量的值能够刷新到主内存中
读操作时,通过在读操作前加入一条load屏障指令,及时读取到变量在主内存的值
查看全部 -
valatile关键字基本特性
能够保证被修饰变量在多线程环境中的可见性
但不能保证多个volatile变量复合操作的原子性
查看全部 -
代码不加同步的情况下,共享变量在线程间不可见的原因:
线程的交叉执行
指令重排序,同时线程间交叉执行
线程对共享变量进行更新后,没有在工作内存与主内存间及时更新
查看全部 -
jmm的as-if-serial规则
查看全部 -
指令重排序的概念以及类型
查看全部 -
线程执行互斥代码(同步代码块)的过程
查看全部 -
synchronized实现可见性
jmm关于synchronized的两条规定
线程解锁前(退出同步代码块时),必须把自己工作内存中共享变量的最新值刷新到主内存中
线程加锁时(进入同步代码块时),将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值
查看全部 -
jmm线程操作内存的基本的规则
第一条关于线程与主内存:线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接从主内存中读写
第二条关于线程间工作内存:不同线程之间无法直接访问其他线程工作内存中的变量,线程间变量值的传递需要经过主内存来完成。
查看全部 -
jmm描述了java程序中各种变量(线程共享变量)的访问规则,以及在jvm中将变量存储到内存和从内存中读取变量这样的底层细节
查看全部
举报