Я пытался выяснить, действительно ли многопоточность в приложении с io-связью действительно улучшит производительность или уменьшит ее. Многие источники, которые я прочитал, противоречат друг другу.
Возьмите этот пример.
Почему многопоточность с io-bound плоха
Принятый ответ таков: если многопоточность вашего приложения связана с io, это вызовет конфликт и замедлит работу вашего приложения.
Где, как в этом примере, ответ с наибольшим количеством голосов говорит о том, что он может улучшить пропускную способность.
Почему многопоточность с io-bound хороша
Я что-то здесь неправильно понимаю?
В моей ситуации мне нужно читать с n дисковых позиций n раз в секунду. Мне трудно решить, следует ли мне вообще использовать потоки.
Например, если у меня было 20 файлов на диске и 20 отдельных потоков, считывающих с диска в состоянии ожидания и пробуждения, это полностью замедлит мою систему?
Если pthread выполняет код, который читает с диска, будут ли заблокированы все остальные 19 потоков, выполняющих одно и то же для другого файла?