Следствие алгоритма планировщика: Низкоприоритетные нити могут занять 100% CPU |
- Statistics
- Participants
- Translate into Russian
- Translation result
- Translation complete.
Время от времени я вижу вариации на этот вопрос. "Почему моя низкоприоритетная нить съедает 100% CPU?"
Установка низкого приоритета не означает, что нить будет потреблять мало CPU. Это всего лишь означает, что она не будет получать процессорного времени пока есть готовые к исполнению треды с более высоким приоритетом. Но если процессор свободен и нет более приоритетных тредов, ваша низкоприоритетная нить запуститься на исполнение и если она CPU-интенсивная, она получит весь процессор.
Приоритет просто контролирует какая нить получит первые фишки процессорного времени, но если вы устраиваете так, что ваша нить только одна, кто хочет запуститься, тогда она получит весь процессор. Курица, находящаяся внизу порядка клевания съедает всё, что ей захочется если нет более высокоранговых куриц вокруг. Вы заплатили за этот процессор. Нет причин злобно отказывать в нём.
Original (English): Consequences of the scheduling algorithm: Low priority threads can take 100% CPU
Translation: © xkrt, the_corrector .
