В настоящее время я изучаю многопоточность, потоки, потоки потоков и т. Д. Я прочитал, что количество потоков не может быть больше количества логических процессоров вашего компьютера (или, по крайней мере, нет преимуществ, которые можно получить, поскольку ваш процессор не может обрабатывать больше).Threads and Processors
Итак, каково ожидаемое поведение, если вы пишете код, который создал сотни потоков на компьютере, скажем, 12 логических процессоров? Они стоят в очереди? Они ждут друг друга? Или это дает вам ошибку? Если у вас есть процесс, который может извлечь выгоду из 100 непрерывно работающих потоков, но имеет только 12 ядер, каков наилучший способ справиться с этим? Я часто открываю свой диспетчер задач, чтобы увидеть сотни процессов и тысячи потоков. Как это работает?
Кроме того, что делать, если я запускаю программу в Windows, с запуском других приложений (например, Chrome, MS Excel, Skype и т. Д.) И, возможно, букет фоновых сервисов (т. Е. Windows Defender, Wifi services, ect ...) Удовлетворяют ли эти другие приложения логические процессоры, уменьшая тем самым количество логических процессоров, доступных для моей потоковой программы?
Связанный: http://stackoverflow.com/questions/2856239/will-multi-threading-increase-the-speed-of-the-calculation-on-single-processor?rq=1 http: // stackoverflow. ком/вопросы/25790064/будет-а-многопоточный-приложение-быть на самом деле-быстрее, чем-а-однопоточных-заявл? RQ = 1 – Thilo