effectuer une tache pendant une temps definie

effectuer une tache pendant une temps definie - Java - Programmation

Marsh Posté le 25-08-2005 à 12:18:52    

Voila, j'aurai besoin de faire une sorte de decompteur et d'executer une serie de ligne tant que ce decompteur n'est pas à zero.
 
Un truc du style :

Code :
  1. while (timer > 0)
  2. { code}


 
mais je sais même pas si c'est possible. J'ai regardé les classes TIMER et dérivé dans la javadoc, mais j'ai rien trouvé qui corresponde simplement à mon probleme.
 
Si quelqu'un avait un piste.
 
Merci

Reply

Marsh Posté le 25-08-2005 à 12:18:52   

Reply

Marsh Posté le 25-08-2005 à 12:29:20    

Tu fais 2 thread :  
Un qui attend le temps X
et l'autre qui execute tes lignes.
 
Une fois que le 1er a attendu le temps que tu veux, tu lui dit d'arreter l'autre et voila


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-08-2005 à 16:27:18    

Tout simplement :  

Code :
  1. long temp=60000; // 60000 ms = 1 minute pour l'exemple.
  2. long t0=System.currentTimeMillis();
  3. while(System.currentTimeMillis()-t0 < temp){
  4. tonCode
  5. }

Reply

Marsh Posté le 25-08-2005 à 16:39:31    

+1 pout iohack
Créer un thread juste pour qu'il attende, je trouve ca bof-bof


---------------
Light is right
Reply

Marsh Posté le 25-08-2005 à 16:47:18    

la solution de iohack semble corresponde parfaitement à ce que je recherchai.
 
Je teste ça!
 
Merci
 
PS: y a t'il une méthode plus recommandable qu'un autre? celle de esox_ch me donne l'impression d'être un bazouka pour tuer une mouche.
 
EDIT : ca marche! Merci iohack, tu me permet de finir une journée de galere et de partir de bonne humeur en week end (RTT power!)


Message édité par blaise_laporte le 25-08-2005 à 17:02:15
Reply

Marsh Posté le 25-08-2005 à 20:41:38    

J'ai pas fait de benchs mais si vous dites que c'est plus couteux en resources, j'vous crois sans problèmes ;). J'ai dit la 1ere solution qui m'est passée par la tete


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-08-2005 à 21:32:30    

Bof, les threads en java, ça coute rien, et puis les deux façons de faire répondent pas au même besoin: avec la façon "now()-maxtime", t'as une boucle infinie, et t'as interet à ce que cette boucle s'execute rapidement si tu veux un minimum de précision.
Avec les 2 threads en //, l'autre tâche n'a pas à être cyclique et peut etre simplement très longue/lente, et interrompue précisement quand on le veut.
Pour info, c'est par un système similaire que les serveurs d'applis j2ee se permettent d'interrompre des transactions trop longues (par rapport à un timeout défini)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed