Когда мое приложение asp.net запускается, я получил около 40 потоков, связанных в процессе. Это нормально? Извините за вопрос noob. Фактические потоки (состояние) зависят от ядра моей машины. Например, при запуске в 4-х ядрах p, im получает около 1-4 текущих потоков (параллельно), а общее количество потоков в процессе составляет около 38-42. При запуске приложения на 24 ядрах, я все равно получаю около 38-42 потоков.Являются ли эти количества потоков в процессе нормальными?
Мой код для получения количества запущенных потоков:
((IEnumerable)Process.GetCurrentProcess().Threads)
.OfType<System.Diagnostics.ProcessThread>()
.Where(t => t.ThreadState == System.Diagnostics.ThreadState.Running)
.Count()
код для получения общего числа нитей:
Process.GetCurrentProcess().Threads.Count
Может кто-то пожалуйста, объясните это нуб как я ..
Заранее спасибо.
Кроме того, иногда я получаю около 90 потоков, связанных в процессе во время пика параллельных задач в 24-ядерной машине. Но после завершения длительной параллельной обработки число потоков будет возвращаться примерно к 42. – hisoka21
Ваш CurrentProcess - IIS. И да, для IIS нормально иметь горстку потоков как минимум. –
Привет Хенк! Спасибо за быстрый ответ. Вы имеете в виду, что общее количество потоков, которые я получаю с использованием вышеуказанного кода, генерируется не только моим приложением? – hisoka21