Я читал о урожайности.Говорят, что если поток выполняется долго и если другой поток, который будет работать в течение короткого времени, должен ждать, пока поток завершит свою обработку.Но мой вопрос в том, что касается планировщика потоков, ни один поток не будет работать до его завершения за один раз.он должен колебаться между рабочим и готовым состояниями.так будет и с долго работающей нитью.через некоторое время он перейдет от запуска к готовности, а затем возобновит работу, и этот цикл будет продолжаться, пока не завершит свою работу.тогда какова роль доходности?Является ли это просто добровольным способом перехода в состояние готовности, чтобы увидеть, нужно ли кому-либо время процесса?
Ниже приведена информация от https://www.geeksforgeeks.org/java-concurrency-yield-sleep-and-join-methods/, которая не смогла очистить мое сомнение.
yield (): Предположим, есть три потока t1, t2 и t3.Поток t1 получает процессор и начинает его выполнение, а потоки t2 и t3 находятся в состоянии Ready / Runnable.Время завершения для потока t1 составляет 5 часов, а время завершения для t2 составляет 5 минут.Поскольку t1 завершит свое выполнение через 5 часов, t2 должен ждать 5 часов, чтобы просто завершить 5-минутную работу.В таких сценариях, когда одному потоку требуется слишком много времени для завершения своего выполнения, нам нужен способ предотвратить выполнение промежуточного потока, если ожидается что-то важное.yeild () помогает нам в этом.yield () в основном означает, что поток не выполняет ничего особенно важного, и если необходимо запустить какие-либо другие потоки или процессы, они должны выполняться.В противном случае текущий поток продолжит работу.