Java 如何强行停止一个线程?

2019-10-01 17:09:48 +08:00
 sadfQED2

Google 前几页的文章都看过了,没找到什么好办法,特来请教各位,我目前写的部分相当于一个框架,我提供 2 个按钮,开始和停止,点击开始后新启一个线程执行别人的代码,点击停止后杀掉这个线程,我并不能控制别人代码里面都判断了 InterruptedException 异常,那这种情况下我有什么办法强行停止线程内的操作呢? Thread.stop()方法已经被移除了,好像没有替代的了?

8924 次点击
所在节点    Java
24 条回复
yulon
2019-10-02 14:23:27 +08:00
合作:让他改。
逆向:系统 API,做好崩溃的打算。
sadfQED2
2019-10-02 16:34:09 +08:00
@STRRL #20 嗯,好像确实没其他方法了,只有在文档里面加要求了


@helloSpringBoot #15 安不安全无所谓,stop 已经没有了,不然我用 stop 就好了,我怕的是别人代码里面万一写个类似 while(true)的代码,跳不出来
0xZhangKe
2019-10-03 11:41:00 +08:00
用 flag 配合中断标志位。
while(!stop){
try{
...
} catch(InteruptException e){
if(stop) return;
}
}

再向外部暴露一个停止线程方法:

public void stop(){
stop = true;
yourThread.interrupt();
}
kaminic
2019-10-03 18:50:52 +08:00
很明显,提需求让对方加退出接口,同时做好内部资源的释放

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/605890

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX