Как стать автором
Обновить

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

Время на прочтение1 мин
Количество просмотров1K
Автор оригинала: Raymond Chen
Время от времени я вижу вариации на этот вопрос. «Почему моя низкоприоритетная нить съедает 100% CPU?»

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

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

UPD: всем спасибо за карму. перенес в специализированный блог.
Теги:
Хабы:
Всего голосов 19: ↑11 и ↓8+3
Комментарии10

Публикации