本帖最后由 王薪婷 于 2013-3-28 22:58 编辑
package stopthreaddemo;
class StopThread implements Runnable
{
boolean flag=false;
public void run()
{
while(flag)
{
System.out.println(Thread.currentThread().getName()+"--run");
}
}
public void changeFlag()
{
flag=true;
}
}
class StopThreadDemo
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
StopThread s=new StopThread();
Thread t=new Thread(s);
Thread t1=new Thread(s);
t.start();
t1.start();
int num=0;
while(true)
{
if(num++==60)
{
s.changeFlag();
break;
}
System.out.println(Thread.currentThread().getName()+"---"+num);
}
}
}
一开始我的标记是为false的,所以就算开启了t和t1那个语句也不会被打印但是当主线程跳出循环的时候,我的标记会被改为true呀,那样run里面的代码就会被执行呀,那应该是一直执行呀?我是这样认为的,但是我编译的结果是只打印了主线程里面的。。。。run里面的都根本执行不到 |