synchronized和volatile区别

volatile本质是告诉JVM当前变量在寄存器中的值是不肯定的,须要从主存中读取,synchronized则是锁定当前变量,只有当前线程能够访问该变量,其余线程被阻塞住。优化 volatile仅能用在变量级别,而synchronized能够使用在变量、方法、类级别。.net volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则能够保证变量的修改可见性和原子性。线
相关文章
相关标签/搜索