Поведение sched_yield

У меня мало вопросов по функции sched_yield , потому что я вижу, что она не работает так, как задумано в моем код. Я часто вижу, что один и тот же поток запускается снова и снова, даже в присутствии других потоков, когда я пытаюсь выполнить его, вызывая sched_yield .

Также, если у меня многоядерность, будет sched_yield для потоков, работающих на всех ядрах, или только на одном ядре. Скажем, например, у меня есть потоки 1, 2 и 3, работающие на ядре 1, и потоки 4, 5 и 6 на ядре 2, и если sched_yield вызывается из потока 2,будет ли он заменен только потоками 1 и 3, или возможны 1, 3, 4, 5 и 6? Я спрашиваю об этом, потому что в .Net Thread.Yield уступает только потокам, работающим на одном ядре / процессоре.

11
задан skaffman 6 July 2011 в 16:53
поделиться