java - 对象成员变量声明volatile进行同步,为什么线程间还是访问不到?
ringa_lee
ringa_lee 2017-04-18 10:26:58
0
1
407

public class FirstThread extends Thread{

private volatile boolean stop = false;

@Override
public void run() {
    while(true){
        System.out.println(Thread.currentThread().getName() + ":"+ stop);
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}

public void change(){
    stop = true;
}

}

//创建thread1
FirstThread ft = new FirstThread();
ft.setName("thread1");
ft.start();

//创建thread2
FirstThread ft2 = new FirstThread();
ft2.setName("thread2");
ft2.start();

Thread.sleep(1000);

//改变thread2中的stop属性值,结果线程thread1的stop属性值没改变了
ft2.change();

//结果输出thread1的stop属性值一直打印是false

ringa_lee
ringa_lee

ringa_lee

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!