2 bulldogcorgi BullDogCorgi 于 2017.08.31 13:15 提问

java多线程池中指定某个线程终止

public void run() {
try {
System.out.println(Thread.currentThread().getName()+“启动”);
Thread.sleep(100000);
System.out.println(Thread.currentThread().getName()+“停止”);
} catch (InterruptedException e) {
System.out.println("线程被终止");
}
}
funcation(){ a.start }
假设线程a b c……按顺序启动,我现在想停下b,如何操作

5个回答

mwb102919
mwb102919   2017.08.31 14:17
已采纳

把要终止的线程名放入ThreadLocal中,在每个线程中去取出ThreadLocal的值,判断县城名是否一样,如果一样就Interrupte,应该就可以。

BullDogCorgi
BullDogCorgi 我最后用了redis来做,思路差不多。不过局部变量好像不是很符合我的业务
3 个月之前 回复
qq_14844131
qq_14844131   2017.08.31 13:45

按名称找到对应线程然后stop?

BullDogCorgi
BullDogCorgi   2017.08.31 14:05

有办法按照名称找到线程吗,命名倒是没问题,关键就在获得这个线程

ljheee
ljheee   Rxr 2017.08.31 15:59

java多线程池中指定某个线程终止,
这个处理特殊任务的线程,单独用Thread子类来实现,然后方便控制

withnoword
withnoword   2017.09.06 10:50
 b.interrupt();
Csdn user default icon
上传中...
上传图片
插入图片