Foo类实现了Runnable接口publicclassFooimplementsRunnable{privatebooleanisRun;@Overridepublicvoidrun(){isRun=true;while(isRun){System.out.println("runing......");}}publicvoidstop(){this.isRun=false;}@OverridepublicStringtoString(){return"Foo{"+"isRun="+isRun+'}';}}测试类publicclassThreadTest{publicstaticvoidmain(String[]args){Foof=newFoo();Threadt=newThread(f);t.start();f.stop();System.out.print(f);}}为什么执行了stop()方法之后,t线程没有停止执行呢。我debug发现thread在运行start()方法之前,里面的Foo对象和执行stop()方法的Foo对象是同一个。按理说执行stop()方法后。f的isRun被设置成了false,线程读取到该变量变成false应该停止才对。看thread的源码求大神解答。
神不在的星期二
守着星空守着你
相关分类