Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1454 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java] Mécanisme de timout simple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java] Mécanisme de timout simple

n°1395562
nemohp
Adepte du provisoire permanent
Posté le 27-06-2006 à 11:10:55  profilanswer
 

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 :
  1. int timeout = 10000; // timout en millisecondes
  2. CallThread call = new CallThread(); // thread parrallele
  3. call.start();
  4. while( call.isAlive() && timeout>0 ){
  5.   try {
  6.     Thread.sleep(1000);
  7.   } catch (InterruptedException e) {e.printStackTrace();}
  8.   timeout--;
  9. }
  10. if( call.isAlive()){
  11.   call.stop(); // TODO a corriger stop() déprécié
  12.   System.out.print("timeout" );
  13. }else{
  14.   System.out.print("response : "+call.getResponse());
  15. }


 
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 ?

mood
Publicité
Posté le 27-06-2006 à 11:10:55  profilanswer
 

n°1395733
boulax
Inserer phrase hype en anglais
Posté le 27-06-2006 à 14:40:15  profilanswer
 

http://java.sun.com/j2se/1.5.0/doc [...] Timer.html


Message édité par boulax le 27-06-2006 à 14:40:39

---------------
Posté depuis des chiottes, sales. Me gusta.
n°1395790
nemohp
Adepte du provisoire permanent
Posté le 27-06-2006 à 15:41:06  profilanswer
 

ça me semble permettre de répéter dans le temps mais pas de faire une execution avec timeout

n°1395801
boulax
Inserer phrase hype en anglais
Posté le 27-06-2006 à 15:47:20  profilanswer
 

J'ai pas compris alors, en fait tu voudrais executer une méthode et l'interrompre si elle prends plus de n secondes pour s'executer ?


---------------
Posté depuis des chiottes, sales. Me gusta.
n°1395831
nemohp
Adepte du provisoire permanent
Posté le 27-06-2006 à 16:19:57  profilanswer
 

oui, en faite je lance un thread maintenant, qui doit répondre en N secondes sinon il est stoppé

n°1395923
nraynaud
lol
Posté le 27-06-2006 à 17:54:05  profilanswer
 

à la volée :  
 

Code :
  1. final Thread worker = new Thread(new Runnable() {
  2.   public void run() {
  3.     //bosse
  4.   }
  5. };
  6. worker.start();
  7. new Timer().schedule(new TimerTask() {
  8.   public void run() {
  9.     worker.interrupt();
  10.   }
  11. }, 10000);


 
voiloù, code non testé.


---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java] Mécanisme de timout simple

 

Sujets relatifs
Appli java et outils propriosprobléme pour éxécuter un fichier java
Récupération d'applet java ?Problème avec une petite application RMI en java
Problème d’écriture dans un fichier avec Java (Applet)chat sous java
[RESOLU très vite]Question simple sur les méthodes[java débutant] erreur afficahge Japplet
[Java] Moteur de blog en java - quelle archi ?Un bon GUI builder en Java Swing et gratuit ? (JTables en cascade !)
Plus de sujets relatifs à : [java] Mécanisme de timout simple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR