Re[5]: внутренняя реализация std::mutex?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.05.18 12:32
Оценка: +2
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, netch80, Вы писали:


N>>Только когда нет работы. Когда она есть — им незачем спать.

AG>
AG>Да, но есть риск получить систему полностью загруженной, когда она перестанет отзываться на действия пользователя.

Не знаю, при каком шедулере такое возможно.
В нормальном, пусть даже при N ядрах у нас N рабочих тредов в пуле, задача реакции на пользователя всё равно получит свои кванты, хоть и заметно меньше.
Если же сделать N-1 рабочий тред, то должно хватить места на заметную активность всех других видов.
(Считаю, что других задач на машине не крутится. А вообще для таких вещей надо делать конфигурируемый параметр.)

AG>Вполне возможно, что в цикле рабочего потока ::Sleep(100) — не вызовет катастрофических задержек.

AG>Однако, вызвав диспетчер потоков позволит пользователю как-то общаться с машиной, когда запущена твоя вычислительная задача.
AG>В противном случае — компьютер становиться страшно тормознутым и практически не управляемым

Уточните, под какой ОС такое происходит. Честно, у меня как-то не наблюдалось. Но у меня уже лет 20 что сервера, что десктопы/лаптопы почти сплошь Linux и FreeBSD.

Но в общем случае я поправку принимаю, с нормальными шедулерами она не должна сильно помешать, а с кривыми — поверю, что помогает.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.