bonjour,
je cherche à faire un mécanisme de timout simple
une classe server lance une methode call qui ne doit répondre dans les 10 secondes
pour le moment je fais comme celà :
Code :
- int timeout = 10000; // timout en millisecondes
- CallThread call = new CallThread(); // thread parrallele
- call.start();
- while( call.isAlive() && timeout>0 ){
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {e.printStackTrace();}
- timeout--;
- }
- if( call.isAlive()){
- call.stop(); // TODO a corriger stop() déprécié
- System.out.print("timeout" );
- }else{
- System.out.print("response : "+call.getResponse());
- }
|
le problème de cette méthode est qu'avec le sleep() le thread peut terminer son execution et il faut attendre la fin du sleep
sinon en version wait-notify, j'ai peur de faire une usine a gaz.
quel autre méthode exite-t-il pour faire un mécanisme de timeout efficace ?