/*
import java.util.concurrent.locks.*;
//当线程
class StopThread 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 changeFlag()
{
flag=false;
}
}
class Test
{
public static void main(String[] args)
{
StopThread st=new StopThread();
Thread t1=new Thread(st);
Thread t2=new Thread(st);
t1.start();
t2.start();
int num=0;
while(true)
{
if(num++==60)
{
//如果线程在调用 Object 类的 wait()、wait(long)
//或 wait(long, int) 方法,或者该类的 join()、join(long)、
//join(long, int)、sleep(long) 或 sleep(long, int) 方法过程中受阻,
//则其中断状态将被清除,它还将收到一个 InterruptedException。
//st.changeFlag();
t1.interrupt();
t2.interrupt();
break;
}
System.out.println(Thread.currentThread().getName()+"-----"+num);
}
System.out.println("over");
}
}
//setDaemon(boolean on)将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,
//Java 虚拟机退出。
//join() t1.join()等待t1线程结束后正在运行的线程再运行。
//yield()暂停当前正在执行的线程对象,并执行其他线程。
*/