码迷,mamicode.com
首页 > 其他好文 > 详细

volatile

时间:2018-02-26 19:38:44      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:change   stat   ati   强制   status   body   art   final   key   

package thread.key;

public class TestOne {

    private  volatile boolean bChange;
    
    public  static void main(String[] args) {

        /**
         * 
         * ---------  volatile
         * volatile是一种轻量级的同步,相对 synchronized开销小
         * 所谓可见性,是指当一条线程修改了共享变量的值,新值对于其他线程来说是可以立即得知的。
         * 
         * 
         * 1)写一个volatile变量时,JMM会将本地内存的变量强制刷新到主内存中去
         * 2)会使其他内存中的值无效
         * 
         * 
         * 
         * 
         * final
         * 
         * 
         * 原子性
         * 
         * 
         */
        
        try {
            TestOne testOne =  new TestOne();
            new Thread(){
                public void run() {
                    for(;;){
//                        System.out.println(Thread.currentThread()); 
                        testOne.changeStatus();
                        testOne.print(Thread.currentThread().toString());
                    }
                };
            }.start();
            Thread.sleep(1); 
            new Thread(){
                public void run() {
                    for(;;){
//                        System.out.println(Thread.currentThread()); 
//                    TestOne testOne =  new TestOne();
//                    testOne.changeStatus();
                        testOne.print(Thread.currentThread().toString());
                    }
                };
            }.start();
            
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
    
    
    public void changeStatus(){
        bChange = true;
    }
    
    public void print(String str){
        
        if (bChange) {
            System.out.println("-----"+str); 
        }else {
            System.out.println(str);
        }
    }

}

 

volatile

标签:change   stat   ati   强制   status   body   art   final   key   

原文地址:https://www.cnblogs.com/lxh520/p/8474607.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!