package com.uncle.ThreadTest1;
//可见的
/**
* 可见性
*/
public class VisibilityDemo {
public static void main(String[] args) throws Exception {
ThreadValatileDemo threadValatileDemo = new ThreadValatileDemo();
threadValatileDemo.start();
Thread.sleep(3000);
threadValatileDemo.setFlag(false);
Thread.sleep(3000);
System.out.println("flag===" + "[" + threadValatileDemo.flag + "]");
// Thread-0===开始执行===
// flag===[false]
}
//有效的
static class ThreadValatileDemo extends Thread {
private boolean flag = true;
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public void run() {
String name = Thread.currentThread().getName();
System.out.println(name + "===开始执行===");
while (true) {
if (!isFlag()){
System.out.println("执行线程退出");
break;
}
}
System.out.println(name + "===线程停止===");
}
}
}
线程的原子性
最新推荐文章于 2023-10-13 10:34:08 发布