С точки зрения Java потоки на гиперпроцессовом процессоре качественно не отличаются от потоков, работающих на разных ядрах. (Они только медленнее ...)
Однако, возможно, вы, вероятно, не понимаете, что делает yield
. Это не гарантирует приостановку текущего потока. Скорее всего, это лишь намек на планировщик потоков для запуска другого потока.
Если нет другой текучей нити, тогда планировщик немедленно продолжит поток, который только что дал.
Планировщик может принять решение игнорировать подсказку.
Если вы хотите/нужно текущий поток действительно пауза, вызов sleep
или блок ждет некоторое событие произойдет.