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:这很理想,但顾名思义,它是由外部实体管理的,不能更改。