"Ciao, Amigo! Oggi faremo una breve ma interessante lezione. Ti parlerò di yield , un metodo statico della classe Thread."

Ellie ti ha già detto che il processore passa costantemente da un thread all'altro. A ogni thread viene allocata una piccola parte del tempo del processore, chiamata quantum . Allo scadere di questo tempo, il processore passa a un altro thread e inizia a eseguire i suoi comandi. La chiamata Thread.yield()consente di terminare in anticipo il quantum del thread corrente. In altre parole, dice al processore di passare al thread successivo.

"Ma perché un thread dovrebbe dedicare il proprio tempo a un altro thread?"

"Non succede spesso. Chiamare yield significa «il nostro thread ha terminato il suo turno prima del previsto» e che il comando dopo yield inizierà con un full time quantum. Pertanto, le possibilità che venga interrotto sono minori. Soprattutto se si tratta di un comando breve, ovvero non richiederà molto tempo per essere eseguito. Questo approccio può essere utilizzato per ottimizzare alcuni processi."

Posso anche dirti che Thread.sleep(0) in realtà funziona allo stesso modo. Penso che all'inizio non userai molto il metodo yield , ma è utile saperlo.