java - 检查线程是否在没有循环或Thread.sleep()的情况下被中断

时间:2016-07-22 10:42:07

标签: java multithreading

我需要调用外部方法,有时需要无限期的时间才能完成。

void doMyStuff(){
  // do my stuff
  // work is being done by doStuff thread
  externalMethod(); // This is external and sometimes takes hours
  // I need to check if current thread is interrupted and then return after a certain time 
}

但是,我不能保持一个线程参与,所以我需要在一段固定时间后终止该过程。我可以在Websphere's WorkManager API的帮助下从外部线程中断doStuff线程。但只有发送中断信号才有用,除非被中断的线程处理它。

我想在一段时间之后将doStuff线程返回到线程池,无论extenalMethod()是否返回。怎么办呢?

1 个答案:

答案 0 :(得分:0)

使用myThread.isInterrupted()查看线程是否被中断。

void doMyStuffs(){
    //do my stuffs
    System.out.println(myThread.isInterrupted());
}