通常情况下用标记来停止线程
特殊情况:wait的线程,可以用interrupte让线程从冻结回到运行状态,但是这样会抛出InterruptedException
package com.xiaozhi.procon2;
public class Test2 {
public static void main(String[] args) {
MyRun myRun=new MyRun();
Thread thread1=new Thread(myRun);
Thread thread2=new Thread(myRun);
thread1.start();
thread2.start();
try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}
myRun.setFlag(false);
// thread1.interrupt();
// thread2.interrupt();
System.out.println("--------------------------------------------------over");
}
}
class MyRun implements Runnable{
private boolean flag=true;
@Override
public synchronized void run() {
while(flag){
// try {this.wait();} catch (InterruptedException e) {System.out.println(Thread.currentThread().getName()+"---------------InterruptedException");}
System.out.println(Thread.currentThread().getName()+"---------------run");
}
}
public void setFlag(boolean flag) {
this.flag = flag;
}
}