Я хочу иметь механизм, при котором ожидаемый процесс не должен запускаться больше определенного времени. По истечении определенного времени должно отображаться состояние процесса или нет, и процесс больше не должен запускаться.Процесс Killing после определенного времени (Java)
Для этого я попытался выполнить два класса: Execute
и Check
, Execute
Метод запуска объекта будет выполнять процесс. Check
объект будет спать в течение определенного времени, после чего он проверяет, все еще запущен объект Execute
. Если он запускает Check
, объект должен убить этот поток и напечатать «да». Else, 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 -Использование-Javas-среда-Exec). –
Читайте о ['Process'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html), который имеет метод' destroy() '. – Mordechai