美文网首页
volatile和Synchronized关键字说明

volatile和Synchronized关键字说明

作者: leoryzhu | 来源:发表于2019-02-19 14:04 被阅读0次

一、volatile

修饰共享变量,保证变量的可见性和有序性,不保证原子性

保证可见性

线程A在工作内存中修改的共享属性值会立即刷新到主存,线程B/C/D每次通过读写栅栏来达到类似于直接从主存中读取属性值

保证有序性

重排序时,以volatile修饰属性的读/写操作代码行为分界线,读/写操作前面的代码不许排序到后面,后面同理不许排序到前面。由此保证有序性

不保证原子性

如果volatile修饰的属性若在修改前已读取了值,那么修改后,无法改变已经复制到工作内存的值

二、Synchronized

保证同一时刻最多只有1个线程执行 被Synchronized修饰的方法 / 代码

对象锁

作用于对像的方法或代码块

类锁

作用于静态方法或静态代码块

相关文章

网友评论

      本文标题:volatile和Synchronized关键字说明

      本文链接:https://www.haomeiwen.com/subject/lryxyqtx.html