Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java volatile关键字的作用

作者:涅盘の梦   发布日期:2026-01-31   浏览:34

public class VolatileExample {

    // 使用 volatile 关键字修饰变量 flag
    private volatile boolean flag = true;

    public static void main(String[] args) throws InterruptedException {
        VolatileExample example = new VolatileExample();

        // 启动一个线程不断检查 flag 的值
        Thread t1 = new Thread(() -> {
            while (example.flag) {
                // 线程会一直运行,直到 flag 被设置为 false
            }
            System.out.println("Thread 1 stopped.");
        });

        t1.start();

        // 主线程休眠 2 秒后将 flag 设置为 false
        Thread.sleep(2000);
        example.flag = false;
        System.out.println("Main thread set flag to false.");
    }
}

解释说明

  1. volatile 关键字的作用

    • volatile 关键字用于修饰变量,确保多个线程能够正确处理该变量的可见性。当一个线程修改了 volatile 变量的值,其他线程可以立即看到这个变化。
  2. 示例代码说明

    • 在这个例子中,flag 是一个 volatile 变量。线程 t1 不断检查 flag 的值,只要 flagtrue,它就会继续运行。
    • 主线程在启动 t1 后休眠 2 秒,然后将 flag 设置为 false。由于 flagvolatile 的,t1 立即可以看到这个变化,并停止运行。
  3. 如果不使用 volatile

    • 如果不使用 volatile 关键字,可能会出现 t1 永远无法看到 flag 被设置为 false 的情况,因为它可能会一直读取本地缓存中的值,而不是主内存中的最新值。

上一篇:java时间戳转换成年月日时分秒

下一篇:java获取请求的ip地址

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站