Java Volatile

描述

使用 Java Volatile 关键字 ,解决线程可读性的安全问题。

题目

请使用 Java Volatile 关键字解决线程可读性问题。

题目解决思路

  1. 定义一个静态变量,并使用 Volatile 关键字修饰,初始值为 false。

  2. 创建一个线程,在线程中获取该静态变量的值,当变量为 true 时跳出循环。

  3. 主线程中改变变量值为 true。

代码具体实现

public class Test { private static volatile boolean stop = false; public static void main(String[] args) throws InterruptedException { System.out.println("嗨客网(www.haicoder.net)\n"); new Thread(new Runnable() { @Override public void run() { while(!stop){ } System.out.println("循环结束,stop 为:" + stop); } }).start(); System.out.println("main 线程启动"); Thread.sleep(1000); stop = true; System.out.println("main 线程设置 stop 为:" + stop); } }

运行结果如下图:

08 Java Volatile.png

以上案例使用 Volatile 关键字,解决线程可读性的安全问题。