「こんにちは、アミーゴ! 今日は短いですが興味深いレッスンをします。 Thread クラスの静的メソッドであるyieldについて話します。」

エリーはすでに、プロセッサがスレッドを常に切り替えていると言いました。各スレッドには、クォンタムと呼ばれる小さなプロセッサ時間が割り当てられます。この時間が経過すると、プロセッサは別のスレッドに切り替えてコマンドの実行を開始します。を呼び出すと、Thread.yield()現在のスレッドのクォンタムを早期に終了できます。言い換えれば、プロセッサに次のスレッドに切り替えるように指示します。

「しかし、なぜ、あるスレッドが別のスレッドに時間を譲る必要があるのでしょうか?」

「それは頻繁に起こることではありません。yield を呼び出すことは、«スレッドが予定より早くその順番を完了する» ことを意味し、yield の後のコマンドがフルタイム クォンタムで開始されることを意味します。したがって、コマンドが中断される可能性は低くなります。特に短いコマンド、つまり実行に時間がかからない場合はそうです。このアプローチは一部のプロセスを最適化するために使用できます。」

Thread.sleep(0) も実際には同じように動作するということも言えます。最初は利回り法をあまり使用しないと思いますが、知っておくと便利です。