打工人,从 JMM 透析 volatile 与 synchronized 原理,在面试、并发编程、一些开源框架中总是会遇到 volatile 与 synchronized 。今天来谈一下Java 内存模型。
Java 内存模型(Java Memory Model,JMM)规定了多线程环境下 Java 程序中线程之间的内存交互规则。在多线程编程中,正确地使用 synchronized 和 volatile 是保证程序正确性的关键。
volatile 是一种轻量级的同步机制,可以确保某个变量的读取和写入操作在多个线程之间可兼性。
synchronized 是一种重量级的同步机制,可以确保对一个代码块或方法的互斥访问。
当多个线程同时访问共享数据时,volatile 可以用来确保可见性,而 synchronized 可以用来确保互斥性和可见性。在性能上,volatile 比 synchronized 更轻量级,但是只适用于单一变量的读取和写入操作。synchronized 则适用于复杂的代码块和方法,但是相对来说会带来更大的性能开销。
程序员桌搭丨M型屏幕布置
这样的布置
会是实用的吗?
#在家办公日记# #桌面#