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

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

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!