Skip to main content

One post tagged with "Volatile"

View All Tags

JMM的概念

JMM(Java Memory Model)是Java内存模型的缩写,它定义了Java程序中多线程并发访问共享内存时的行为规范。JMM中的核心概念包括:

  1. 主内存:主内存是所有线程共享的内存区域,所有变量都存储在主内存中。

  2. 工作内存:工作内存是每个线程独有的内存区域,线程执行时会将主内存中的变量复制到自己的工作内存中进行操作。

  3. 内存屏障:内存屏障是一种同步机制,用于保证多线程之间对共享变量的可见性和有序性。在JMM中,读屏障和写屏障分别用于保证读操作和写操作之间的顺序性和可见性。

  4. 原子性:原子性指一个操作不可被中断或分割,要么全部执行成功,要么全部不执行。在JMM中,对基本数据类型(如int、long等)的读写操作具有原子性。

  5. 可见性:可见性指当一个线程修改了某个共享变量后,其他线程能够立即看到这个修改。在JMM中,由于每个线程都有自己独立的工作内存,在修改完共享变量后需要通过同步机制(如锁、volatile关键字等)来保证可见性。

  6. 有序性:有序性指程序执行的顺序与代码编写的顺序一致。在JMM中,由于指令重排的存在,程序执行的顺序可能与代码编写的顺序不一致,需要通过内存屏障来保证有序性。


wenhaoconcurrentVolatile5 min read