java 中断线程 wait_java如何停止一个wait的线程

public class Demo extends Thread {

volatile private boolean stop = false;

public void setStop(boolean stop) {

this.stop = stop;

}

public Demo(ThreadGroup group, String name) {

super(group, name);

}

public static void main(String args[]) throws Exception {

Demo thread = null;

ThreadGroup tg = new ThreadGroup("洒家的线程组");

for (int i = 0; i 

thread = new Demo(tg, "thread-" + i);

thread.start();

}

Thread.sleep(3000);

System.out.println("去吧皮卡丘,中断他们");

Thread[] ts = new Thread[tg.activeCount()];

tg.enumerate(ts);

for (Thread t : ts) {

((Demo)t).setStop(true);

t.interrupt();

}

Thread.sleep(1000);

System.out.println("都特么挂了");

}

public void run() {

String threadName = Thread.currentThread().getName();

synchronized (this) {

System.out.println(threadName + " 跑起来了");

while (!stop) {

try {

System.out.println(threadName + " wait了");

wait();

} catch (InterruptedException e) {

System.out.println(threadName + " 不再wait了");

}

}

}

System.out.println(threadName + "拜拜");

}

}

仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值