synchronized详解 如何延长Java程序员的职业寿命?
如何延长Java程序员的职业寿命?只要学会熟练。现在有哪些理论上的科技在未来会让人类受益?感谢您的邀请,永久机器volatile和synchronized之间的区别:1。volatile的本质是告诉J
如何延长Java程序员的职业寿命?
只要学会熟练。
现在有哪些理论上的科技在未来会让人类受益?
感谢您的邀请,永久机器
volatile和synchronized之间的区别:
1。volatile的本质是告诉JVM寄存器(工作内存)中当前变量的值是不确定的,需要从主存中读取;synchronized是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞。
2. Volatile只能在变量级别使用;synchronized可以在变量、方法和类级别使用。
3. Volatile只能实现变量修改的可见性和原子性,synchronized可以保证变量修改的可见性和原子性。
4. Volatile不会导致线程阻塞;synchronized可能会导致线程阻塞。
5. 用volatile标记的变量不会被编译器优化;用synchronized标记的变量可以被编译器优化。