如何杀死java线程?

zjf*_*fdu 4 java multithreading

我谷歌杀死java线程的解决方案.并且存在两种解决方案:

  1. 设置一面旗帜
  2. 使用Thread.interrupt

但他们两个都不适合我.在我的帖子中,我称第三方api需要很长时间才能完成.如果需要花费太多时间,我想让用户取消这个帖子.

那我怎么能杀掉这个帖子呢?提前致谢.

Yan*_*min 5

Thread.interrupt()是唯一通用的安全方法.您当然可以使用其他应用程序级信号(例如对volatile变量进行条件检查)来自行终止.其他方法(例如所有已弃用的Thread.xx方法)可能会以非确定性方式污染应用程序的状态,并且需要重新加载所有应用程序状态.

  • Thread.interrupt只是故事的一半,你正在打断的线程必须支持一个使用中断标志的中断策略......它调用Thread.interrupt的那个标志将被重置. (4认同)