« Bonjour, Amigo ! Aujourd'hui, Bilaabo t'en dira plus au sujet de la méthode la plus intéressante que nous utilisons quand nous travaillons avec des threads : sleep. La méthode sleep est déclarée comme une méthode statique de la classe Thread, elle n'est donc associée à aucun objet particulier. Le but de cette méthode est de faire attendre, ou « dormir » le programme pendant un certain temps. Voici comment cela fonctionne : »

Code Description
public static void main(String[] args)
{
Thread.sleep(2000);
}

Le programme démarre.

Ensuite, il se fige pendant 2 secondes (2000 millisecondes)

Puis il se termine.

Le seul paramètre de la méthode sleep est une durée. L'intervalle de temps est spécifié en millièmes de seconde (millisecondes). Une fois qu'un thread appelle cette méthode, il attend le nombre de millisecondes spécifié.

« Quand utiliser cette méthode ? »

« Cette méthode est souvent utilisée dans les threads enfants lorsque tu as besoin de faire quelque chose régulièrement, mais pas trop souvent. Regarde cet exemple : »

Code Description
public static void main(String[] args)
{
while (true)
{
Thread.sleep(500);
System.out.println("Tick");
}
}
Le programme va s'exécuter indéfiniment. La condition de la boucle est toujours vraie.

Voici ce que le programme fait dans la boucle :
a) attend une demi-seconde
b) affiche 'Tic' à l'écran

Ainsi, une action est effectuée deux fois par seconde.

« Ooh, alors ça c'est intéressant. »

« Content que ça te plaise, mon ami ! »

« Et si je veux effectuer une action 100 fois par seconde ? Que dois-je faire ? »

« Si une action doit être exécutée 100 fois par seconde, sachant qu'il y a 1000 millisecondes dans une seconde, l'action doit être effectuée une fois toutes les 10 millisecondes. »

Si ton action prend 2 millisecondes, alors tu dois ajouter un retard de 8 millisecondes. Comme ça, au final, l'action sera exécutée toutes les 10 millisecondes. Ce qui nous fait 100 fois par seconde.

Si ton action est quasi-instantanée, ajoute un retard (sleep) de 10 millisecondes. Elle sera alors exécutée environ 100 fois par seconde.

« Merci, Bilaabo. »