При запуске многопоточного приложения необходимо ли явно указывать максимальное количество потоков, используемых для приложения, или Linux будет управлять им самостоятельно? Если Linux обрабатывает его сам по себе, я ожидаю, что он будет «социальным», в том смысле, что центральный процессор будет разделен между всеми пользователями. Но, может быть, я ошибаюсь в этом?необходимо явно ограничить число потоков
ответ
Некоторые системы имеют максимальное количество потоков, с которыми может справиться система, но большинство систем просто заканчивается из памяти [до этого].
Если ваши потоки «не делают много», то у вас может быть столько, сколько вам нравится (хотя обработка нескольких тысяч потоков может заставить вещи работать медленнее просто потому, что время от времени система должна «ходить» «каждый поток в системе». Если ваши потоки тяжелы в расчетах и т. Д., Это хорошо для других процессов в системе, чтобы оставить некоторые запасные возможности процессора для этих процессов.
Таким образом, это действительно не то, что установлено в камне, но зависит от того, чего вы пытаетесь достичь. И, конечно, для чего предназначена общая система - если ваша задача состоит в моделировании аэродинамики нового автомобиля для BMW, то использование 99,999% CPU для расчета аэродинамики вполне нормально. Если машина является выделенным веб-сервером, использование 99,99% центрального процессора для обслуживания веб-страниц также является правдоподобным. Если это компьютер для настольных компьютеров, который они используют для просмотра в Интернете, для написания электронных писем и компиляции кода, то использование 99,99% доступного процессора для преобразования Фурье их музыкальной коллекции для проверки дублирующих песен, вероятно, не является идеальным решением.
Сама программа определяет, сколько потоков она запускает, а не ОС. Что касается того, что происходит, когда процесс запускает слишком много потоков, это до scheduler.
- 1. Правильный способ ограничить максимальное число потоков одновременно?
- 2. Как ограничить число нитей
- 3. Призма: необходимо вызвать RaiseCanExecuteChanged() явно
- 4. Необходимо ли явно закрыть клиент?
- 5. Необходимо ли явно инициализировать свойство?
- 6. Как ограничить число потоков, выполняющих действие в C++ AMP
- 7. Каков наилучший способ ограничить число потоков, выполняющих определенный метод?
- 8. Java как ограничить число потоков, действующих по методу
- 9. Как ограничить число пользователей и/или потоков для библиотеки .net?
- 10. Число потоков рабочих потоков Java
- 11. Сколько потоков необходимо создать?
- 12. Ограничить количество работающих потоков?
- 13. предельного число потоков, работающее параллельно
- 14. Ограничить количество параллельных потоков в пуле потоков
- 15. NaN явно число, или оно?
- 16. предельное число потоков C#
- 17. Создать динамическое число потоков
- 18. Сколько потоков GC необходимо иметь?
- 19. Ограничить количество потоков в numpy
- 20. Ограничить количество потоков в Gpars?
- 21. Как ограничить количество параллельных потоков
- 22. Ограничить число колонны
- 23. загрузки ASP.NET Ограничить число
- 24. Как ограничить десятичное число?
- 25. Как ограничить число процессов?
- 26. как ограничить число символов
- 27. Mysql просмотров необходимо ограничить функцию
- 28. Почему необходимо явно удалить трассировку sys.exc_info()?
- 29. Does XMLDOMNodePtr :: get_text() необходимо явно освободить?
- 30. Динамическое свойство необходимо явно вызвать __get__ (Python)
Фактически для использования ЦП обычно это нормально. То, что я нахожу в моей машине, - это чрезмерное использование памяти [хотя это только «однопользовательская» машина, я часто запускаю несколько приложений одновременно, например, некоторые длительные вычисления и сеанс компиляции и просмотра веб-страниц одновременно ]. Когда я запускаю что-то, использующее много оперативной памяти, я получаю «невосприимчивую» систему. Но в итоге система будет (пытаться) распределить доступные ресурсы между пользователями. –