Mise en sommeil
Dans le contexte de la programmation concurrente, la mise en sommeil (sleep) d'un thread permet de retirer l'accès à la ressource processeur de ce thread.
Durée de la mise en sommeil
[modifier | modifier le code]La durée de la mise en veille peut en principe être spécifiée de manière relative ou absolue. Ainsi il est possible de spécifier que l'on souhaite
- mettre en sommeil un thread pour 10000 millisecondes (échéance relative).
- mettre en sommeil un thread jusqu'au à 12h56 et 15 secondes (échéance absolue).
Il est ainsi garanti que le thread n'occupera pas la ressource processeur avant l'échéance. Par contre, il n'est pas garanti que le thread aura un accès à la ressource processeur immédiatement après l'échéance.
Exemples
[modifier | modifier le code]Mise en sommeil dans le cadre du langage Java
[modifier | modifier le code]Dans le langage Java, la mise en sommeil d'un thread s'effectue à l'aide de la méthode sleep de la classe Thread.
public void run() { try { this.sleep(12000); } catch (InterruptedException e) {} }
Le code précédent effectue la mise en sommeil du thread courant, pour une durée d'au moins 12 secondes. Si le délai ne peut pas être respecté, l'exception InterruptedException est levée, ce qui permet au programmeur de prendre les dispositions nécessaires.