Partage

boucle infinie et thread en java

Sujet résolu
Le 30 juillet 2011 à 22:33:14

Bonjour, je veux créer une application qui doit comparer les dates stockée dans une base de donnée avec la date du système d'une façon continue(infiniment). J'ai pensé à l'utilisation d'une boucle infinie, mais apparemment j'ai constaté que le fait d'utiliser une boucle infinie entraîne un grand utilisation du processeur(~100%)(selon ce que j'ai vu dans le gestionnaire des taches).Une autre solution consiste je vois à utiliser les Thread. mais pour l'instant j'en ai aucune idée.
Si vous avez une solution, veuillez s'il vous plais me la proposer .
Merci d'avance.
Publicité
Le 30 juillet 2011 à 22:33:14
Le 30 juillet 2011 à 23:35:57

Salut,

En effet tu peux utilisé une Thread mais bon tu utilisera aussi un loop avec pour condition true.

Tu peux essayer d'executer ton code toute les minutes pour eviter dútiliser trop de cpu.
Le 30 juillet 2011 à 23:39:14

Salut,
Si ta boucle fait des calculs en continue sans appel système il est normal quelle utilise le maximum des ressources du processeur disponibles.
Si tu ne veux pas utiliser le processeur à 100% il te suffit d'endormir ton Thread quelques instant à chaque boucle (Suffit d'appeler Thread.sleep(<Tps en milisecondes>) ).
Le 31 juillet 2011 à 4:53:49

Plop,

Le plus simple serait d'utiliser un Timer et un TimerTask pour tester toutes les X temps tes dates. Ou sinon tu peux écrire un algo qui récupère la date la plus proche du système dans la base de données et effectuer un sleep dans le thread durant la différence de temps, puis passe à la prochaine date (même si c'est risqué c'est plus optimisé qu'un while(true))
Le 31 juillet 2011 à 13:29:51

Merci beaucoup pour vos réponses.L'utilisation de la méthode sleep a résolue le problème.

boucle infinie et thread en java

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown