为什么我的调用军队方法是成功的但是不执行循环里面的内容?
package com.imooc.war;
// 军队
public class Host implements Runnable {
// volatile 关键字保证线程可以正确读取其他线程传入的值
volatile boolean mm=true;
@Override
public void run() {
while(mm){
for(int i=1;i<=20;i++){
if(Thread.currentThread().getName().equals("毛毛"))
System.out.println(Thread.currentThread().getName()+"第"+i+"次 踩脚");
if(Thread.currentThread().getName().equals("蛋蛋"))
System.out.println(Thread.currentThread().getName()+"第"+i+"次 打屁股");
// 让出处理器时间
Thread.yield();
// if(i==20){
// mm=false;
// }
}
}
System.out.println(Thread.currentThread().getName()+" 结束!");
}
}
------------------
package com.imooc.war;
// 作战地点
public class stage implements Runnable {
@Override
public void run() {
Host mm=new Host();
Host dd=new Host();
Thread mmt=new Thread(mm, "毛毛");
Thread ddt=new Thread(dd, "蛋蛋");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
mmt.start();
ddt.start();
mm.mm=false;
dd.mm=false;
try {
mmt.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new stage().run();
}
}
-------------
输出 仅有:
蛋蛋 结束!
毛毛 结束!