La consommation du PROCESSEUR lorsque le thread est en veille à l'aide de Fil.le sommeil

J'ai un programme serveur qui les sondages d'une base de données pour les nouvelles demandes , je veux que cette interrogation être fait à intervalles de 1 minute, donc , j'ai créé un Thread.sleep() dans le programme de la boucle while.
Le problème est qu'à chaque fois que ce programme est censé "le sommeil" la consommation CPU monte de façon drastique (viz. environ 25 - 30%).
Paradoxalement, lorsque le programme n'est pas inactive et qu'il est occupé à traiter les demandes , la CPU, la consommation tombe à 0,4%.
J'ai lu en ligne et a trouvé qu'il y avait de performances associés avec fil.le sommeil, mais je ne pouvais trouver aucune solution de rechange viable (Thread.attendre exige la notification sur un objet, quelque chose qui me semble inutile dans mon scénario)

La boucle principale (quand il n'y a pas de nouvelles demandes) ne pas faire n'importe quoi, voici un squelette de tout ce qui est fait lors de la consommation CPU est de 25%

-> sondage
-> Pas de nouveaux records ?
-> le Sommeil
->répéter

Combien de temps êtes-vous dormir? et qu'est-ce que le reste de la while boucle en train de faire?
C'est bizarre. Pouvez-vous réduire à un petit programme qui se comporte comme vous le décrivez, et de le poster ici? À tout le moins, merci de nous montrer le squelette de votre sleep boucle (à l'aide de code).
Veuillez fournir le code de la section où vous ne le réel de couchage.
Juste pour s'assurer - vous ne l'utilisez pas Thread.sleep(60) dormir pendant 60 secondes, non? (qui serait la cause d'un sommeil de 60 millisecondes)

OriginalL'auteur angryInsomniac | 2011-10-14