Следствие алгоритма планировщика: Низкоприоритетные нити могут занять 100% CPU

Raymond Chen, “Consequences of the scheduling algorithm: Low priority threads can take 100% CPU”, public translation into Russian from English More about this translation.

Translate into another language.

Время от времени я вижу вариации на этот вопрос. "Почему моя низкоприоритетная нить съедает 100% CPU?"

Установка низкого приоритета не означает, что нить будет потреблять мало CPU. Это всего лишь означает, что она не будет получать процессорного времени пока есть готовые к исполнению треды с более высоким приоритетом. Но если процессор свободен и нет более приоритетных тредов, ваша низкоприоритетная нить запуститься на исполнение и если она CPU-интенсивная, она получит весь процессор.

Приоритет просто контролирует какая нить получит первые фишки процессорного времени, но если вы устраиваете так, что ваша нить только одна, кто хочет запуститься, тогда она получит весь процессор. Курица, находящаяся внизу порядка клевания съедает всё, что ей захочется если нет более высокоранговых куриц вокруг. Вы заплатили за этот процессор. Нет причин злобно отказывать в нём.

Original (English): Consequences of the scheduling algorithm: Low priority threads can take 100% CPU

Translation: © xkrt, the_corrector .

translated.by crowd

Like this translation? Share it or bookmark!