Thread.sleep() приостанавливает выполнение текущего потока на определенное время, переводя его в состояние Timed Waiting. Он не отдает CPU другим потокам. Thread.yield() сообщает планировщику потоков, что текущий поток готов временно уступить выполнение другим потокам с тем же или более высоким приоритетом, но нет гарантии, что он это сделает. yield() переводит поток в состояние Runnable.
Основные отличия:
sleep() гарантирует приостановку на заданное время. yield() не гарантирует передачу управления или конкретную длительность паузы.sleep() переводит поток в состояние Timed Waiting (или Waiting с таймаутом). yield() переводит поток в состояние Runnable.sleep() используется для введения задержки. yield() используется для предоставления возможности выполнения другим потокам, особенно в циклах, чтобы избежать монополии CPU.sleep() не влияет на планировщик (кроме того, что поток неактивен). yield() является подсказкой для планировщика.Пример использования:
java
java