Thread.sleep() est une méthode statique. Il n'y a aucune différence entre appeler Thread.sleep()
et appeler Thread.currentThread().sleep()
. Cependant, si vous utilisez eclipse, le dernier formulaire devrait vous donner un message d'avertissement lorsque vous accédez à la méthode statique sleep() de manière non statique.
TimeUnit.sleep() est une fantastique alternative à Thread.sleep(). Personnellement, je préfère parce que dans la plupart des cas, je veux dormir pendant quelques secondes entières et je peux facilement et faire clairement avec TimeUnit.SECONDS.sleep(5)
par opposition à Thread.sleep(5*1000)
ou Thread.sleep(5000)
Edit: Il y a encore une autre alternative, mais il est pas tous une alternative souhaitable. L'appel Object.wait() arrêtera l'exécution d'une manière similaire à Thread.sleep(). Cependant, il est déconseillé de le faire car vous devez d'abord utiliser synchronize(Object)
et cette méthode est destinée à wait/notify Synchronisation des threads. De plus, il n'y a aucune garantie que le Thread attende le plein temps spécifié, car les réveils intempestifs de Object.wait() sont acceptables pour les implémentations JVM.
Cette question est si proche de http://stackoverflow.com/questions/2077216/java-thread-currentthread-sleepx-vs-thread-sleepx qu'un plagariste éhonté a juste coupé-collé la réponse acceptée comme sa réponse à cette question. –
@Stephen C c'est peut-être quelqu'un d'autre qui est sans vergogne pour poser des questions redondantes? –
@Dave - @Jazz a seulement posé 2 questions, et l'autre n'était pas redondante. D'ailleurs, tout le monde sait que le plagiat est une tromperie. Les enfants apprennent cela à l'école primaire, et quiconque arrive à l'université ne peut manquer d'apprendre que c'est un gros non. –