/*
如何停止线程?
只有一种方法,run方法结束。
开户多线程运行,运行代码通常是循环结构。
只要控制住循环,就可以让run方法结束,也就是线程结束。
当没有指定的方式让冻结(失去执行权)的线程恢复到运行状态时,这时需要对冻结进行清除,强制让线程恢复到运行状态中来,这样就可以操作标记让线程结束。
Thraed类提供该方法interrupt();
*/
class Stop implements Runnable
{
private boolean flag=true;
public synchronized void run()
{
while(flag)
{
try
{
wait();
}
catch (InterruptedException e)
{
System.out.println(Thread.currentThread().getName()+"------Exception");
flag=false;
}
System.out.println(Thread.currentThread().getName()+"------run");
}
}
public void num()
{
flag=false;
}
}
class Demo
{
public static void main(String[] args)
{
Stop s=new Stop();
Thread t1= new Thread(s);
Thread t2= new Thread(s);
t1.start();
t2.start();
int x=1;
while(true)
{
if(x++==60)
{
t1.interrupt();
t2.interrupt();
break;
}
System.out.println(Thread.currentThread().getName()+"------"+x);
}
}
} |
|