-
volatile使用须知查看全部
-
volatile不能保证volidate实现复合变量操作的原子性查看全部
-
as if serial查看全部
-
线程解锁前,必须把共享变量的最新值刷新到主内存中; 线程加锁前,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值查看全部
-
要在多线程中安全的使用volatile变量,必须同时满足: 1. 对变量的写入操作不依赖其当前值: 不满足:i++ ; 满足:boolean , 记录温度变化的变量 2. 该变量没有包含在具有其他变量的不变式中: 不满足:不变式low<up, 6<7查看全部
-
保证操作的原子性: 1. synchronized关键字 2. EeentrantLock 3. AtomicInterger查看全部
-
volatile实现可见性,但不保证volatile变量的操作原子性。 是通过加入内存屏障和禁止重排序优化来实现的。查看全部
-
代码执行冲排序????直接影响多线程执行结果。查看全部
-
多个线程访问一个成员变量时 每个线程都会得到一个该变量的副本 在自己的线程的栈中保存、计算 以提高速度。 但是这样就会有同步的问题了。 当一个线程修改了自己栈内副本的值 还没有立即将同步到主存中, 其他线程再来获取主存中的该变量时 就会得到过期数据 , 为了解决这种问题 可以使用synchronized对该变量的操作同步 , 或使用volatile关键字声明该变量为易变对象 这样的话 每个线程就不会创建副本到自己的栈中 而是直接操作主存查看全部
-
线程1对共享变量的修改要被其他线程及时看到:1.线程1的工作内存--》 主内存 ; 2. 主内存 --》 其他线程的工作内存。查看全部
-
所有的变量都存储在主内存中 每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的副本(主内存中该变量的一份拷贝)。 线程对共享变量的所有操作必须在自己的工作内存中进行,不能直接从主内存中读写。查看全部
-
可见性:一共线程对共享变量值的修改,能够及时被其他线程看到。 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。查看全部
-
笔记3查看全部
-
笔记2测试查看全部
-
笔记测试查看全部
举报
0/150
提交
取消