System.Threading и количество потоков в ядре ЦП - PullRequest
0 голосов
/ 07 мая 2020

Зависит ли количество потоков, созданных с использованием System.Threading, от физических потоков в ЦП? Есть ли между ними прямая взаимосвязь один к одному?

Допустим, если я создам 10 потоков, как показано ниже, в то время как ЦП имеет 4 ядра и 8 потоков, означает ли это, что только 8 потоков будут выполняться одновременно, а для других 2 потоков, ЦП будет переключать задачи?

Thread[] threads = new Thread[10];

1 Ответ

1 голос
/ 07 мая 2020

Не создавайте потоки только для ожидания завершения ввода-вывода. Шаблон async/await поможет вам, ожидая завершения ввода-вывода, освобождая эти потоки для выполнения другой полезной работы. обслуживать 10 раз (или 100 или 1000) одновременно, если эта служба также ожидает ввода-вывода, то возможно, что вам все равно потребуется 16 минут для выполнения ваших задач.

...