我希望有一種機制,通過該機制,預期的進程不應運行超過特定時間。特定時間結束後,應顯示進程是否正在運行的狀態,並且進程應該不再運行。特定時間後的殺死進程(Java)
爲此我試圖做兩個類Execute
和Check
,Execute
對象的運行方法會執行進程。 Check
對象將在特定時間內休眠,然後檢查Execute
的對象是否仍在運行。如果它正在運行Check
對象有望殺死該線程並打印「是」。否則,Check
對象應打印「否」。
class Execute extends Thread{
public void run(){
//Execute process
}
public static void main(String[] args){
Execute ex = new Execute();
ex.start();
Check ch = new Check(ex);
ch.start();
}
}
class Check extends Thread{
Execute ex;
Check(Execute ex){
this.ex = ex;
}
public void run(){
try{Thread.sleep(5000);} //specific time given is 5 seconds.
catch(Exception e){System.out.println(e);}
if(ex.isAlive()){
System.out.println("yes");
//kill the thread ex.
}
else System.out.println("no");
}
}
我的問題是:
- 我怎麼能殺
ex
線程? - 實現此機制的最佳方法是什麼?
[這個問題]的可能的複製(http://stackoverflow.com/questions/808276/how-to-add-a-timeout-value-when - 使用 - Java類,運行時執行)。 –
閱讀['Process'](http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html),它有一個'destroy()'方法。 – Mordechai