摘要: volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住. volatile仅能使用在变量级别,synchronized则可以使用在变量,方法. volatile仅能实现变量的修改可见 阅读全文
posted @ 2020-11-11 22:55 走过路过哭过 阅读(73) 评论(0) 推荐(0)
摘要: synchronized:修饰方法,代码块。 互斥锁(对象锁),同步锁定,即保证了可见性又保证了原子性 Volatile:修饰变量,保证了可见性,但是不保证原子性,同时禁止指令重排序 可见性:是因为JMM将工作内存置为无效,每次线程读取和写入数据都是直接操作了主内存(lock指令的作用) 禁止指令重 阅读全文
posted @ 2020-11-11 22:53 走过路过哭过 阅读(130) 评论(0) 推荐(0)