« Bonjour, Amigo ! Aujourd'hui, nous avons une leçon courte mais intéressante. Je vais te parler de yield, une méthode static de la classe Thread. »
Ellie t'a déjà dit que le processeur passait en permanence d'un thread à un autre. Chaque thread reçoit un petit morceau de temps de processeur, appelé quantum. Quand ce temps est écoulé, le processeur passe à un autre thread et commence à exécuter ses commandes. Appeler Thread.yield()
te permet de terminer le quantum du thread actuel prématurément. En d'autres termes, cette méthode dit au processeur de passer au thread suivant.
« Mais pourquoi un thread voudrait abandonner son temps au profit d'un autre ? »
« Cela ne se produit pas souvent. Appeler yield signifie que 'notre thread a fini son tour en avance' et que la commande après yield commencera avec un quantum complet. Ainsi, les chances qu'il soit interrompu sont moindres. Surtout si c'est une commande courte, qui ne nécessite pas beaucoup de temps pour s'exécuter. Cette approche peut être utilisée pour optimiser certains processus. »
Je peux aussi te dire que Thread.sleep(0) fonctionne en réalité de la même façon. Je ne pense pas que tu utiliseras la méthode yield très souvent au début, mais il est utile de la connaître.
GO TO FULL VERSION