В чем причина того, что размер пула потоков равен числу процессоров/ядер для задач с интенсивным использованием ЦП? И почему связанные задачи ввода/вывода должны иметь больший размер пула?Оптимальная конфигурация пула потоков?
ответ
Существует корреляции между оптимальным количеством нитей к числу с ентральная р rocessing ˙U гнид, так как нить можно рассматривать как программу. Программы требуют времени выполнения. Время работы обеспечивается центральным процессором.
Производитель-потребитель-аналог будет иметь программу как потребитель и центральные процессоры в качестве производителя. Поэтому теоретически - если производитель (процессор) может обрабатывать T
потребителей (потоки) и есть производители C
- оптимальным количеством потребителей будет T * C
.
Слишком много потоков вызовет слишком много context switch Накладные расходы, которые практически теряют время процессора для управления самими потоками. Слишком малое может привести к выполнению idle cpus, пока задачи все еще находятся в очереди.
I/O Связанные задачи взаимодействуют с медленными устройствами (именно по этой причине они называются привязкой ввода/вывода). Хотя запросы выполняются на медленном устройстве (например, на жестком диске), scheduler может иметь процессор, который запускает другие потоки вместо ожидания вывода устройства.
Аналогия для этого была бы вам (планировщиком) заказывать еду в ресторане (нить 1), а затем отправлять SMS вашему другу (нить 2). Тот факт, что вы ждёте свою пищу, не должен отказывать вам в выполнении других задач, таких как отправка SMS вашему другу.
Чтобы иметь более глубокие знания о возможных оптимизаций вы можете прочитать о affinity и scheduling.
- 1. Конфигурация пула потоков AKKA
- 2. Оптимальная конфигурация Apache
- 3. Конфигурация пула потоков Java-сервер приложений
- 4. Оптимальная конфигурация для хаопа?
- 5. Конфигурация пула соединений Jboss
- 6. Производительность пула потоков
- 7. Реализация простого пула потоков
- 8. Безопасное уничтожение пула потоков
- 9. RecursiveAction размер пула потоков
- 10. PPL: Инициализация пула потоков
- 11. Способы блокировки пула потоков
- 12. диспетчер пула реакторных потоков
- 13. Оптимизация размера пула потоков
- 14. Обработка изоляции пула потоков?
- 15. Тайм-аут отдельных потоков кэшированного пула потоков
- 16. Какая оптимальная конфигурация vim для веб-разработки?
- 17. Оптимальная конфигурация нейронной сети для классификации объектов
- 18. Оптимальная минимальная аппаратная конфигурация для силоса Orleans
- 19. Оптимальная конфигурация для отказа от идентификации скребок
- 20. Tomcat 8 - Конфигурация пула подключений
- 21. увеличить ошибки связывания пула потоков
- 22. Пропускная способность пула потоков Java
- 23. Проблема безопасности стека пула потоков
- 24. Прерывание пустых работников пула потоков
- 25. Создание пула потоков в C#
- 26. Оптимизация пула потоков Executor-java
- 27. Реализация пула потоков внутри службы
- 28. Размер пула потоков Java (Executors)
- 29. Как выбрать размер пула потоков?
- 30. Установка Идеальный размер пула потоков
В чем причина оплаты в колледже, если вы собираетесь выполнять задания, сделанные толпой SO? – Dima