java多线程快速入门(十五)

使用violate关键字解决了变量的可见性问题(volatile让多线程刷新falg的值)

package com.cppdy;

class MyThread11 extends Thread {

    //volatile让多个线程刷新falg的值
public volatile boolean falg = true; @Override
public void run() {
System.out.println("子线程开始执行啦");
while (falg) { }
System.out.println("子线程结束执行啦");
} public void setFalg(boolean falg) {
this.falg=falg;
System.out.println("falg的值:"+this.falg);
}
} public class ThreadDemo11 { public static void main(String[] args) throws Exception {
MyThread11 mt = new MyThread11();
mt.start();
Thread.sleep(1000);
mt.setFalg(false);
System.out.println("主线程结束啦");
} }

当更改falg的值,volatile会更新其它线程falg的值

上一篇:spring事件驱动模型--观察者模式在spring中的应用


下一篇:如何用SQL语句在指定字段前面插入新的字段?