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

java-检查线程是否在没有循环或线程的情况下中断。sleep(),java,multithreading,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 ce

我需要调用一个外部方法,它有时需要不确定的时间来完成

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 
}
但是,我不能让线程继续工作,所以我需要在固定时间后终止进程。在的帮助下,我可以从外部线程中断doStuff线程。但是只有发送中断信号是无用的,除非被中断的线程处理它


我想在一定时间后将doStuff线程返回到线程池,无论
extnalmethod()
是否返回。如何执行此操作?

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

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

您也可以使用这样一个方便的库:在
externalMethod()
之前编写此库是无用的,如果在
externalMethod()
之后编写,除非
externalMethod()
返回,否则将永远不会调用它。@Frank不要使用
myThread.stop()
:。@ares so。。。您想检查<代码>外部方法()/<代码>的中间位置吗?嗯,您需要将检查添加到
externalMethod()
。您不能停止
externalMethod
执行任何操作,除非它已经检查了中断情况。@ares您不能将此写在您的资料末尾吗?@AndyTurner:这很理想,但顾名思义,它是由外部实体管理的,不能更改。