當我的asp.net應用程序啓動時,我在一個進程中有大約40個關聯的線程。這是正常的嗎?對於noob問題抱歉。運行(狀態)的實際線程取決於我的機器的核心。例如,在4核心的PC上運行,即時獲得1-4個正在運行的線程(並行),並且一個進程中的線程總數約爲38-42。當在24核心pc上運行應用程序時,im仍然會繞過38-42個線程。這些進程中的線程數是否正常?
我爲獲得運行的線程數代碼:
((IEnumerable)Process.GetCurrentProcess().Threads)
.OfType<System.Diagnostics.ProcessThread>()
.Where(t => t.ThreadState == System.Diagnostics.ThreadState.Running)
.Count()
代碼用於獲取的線程總數:
Process.GetCurrentProcess().Threads.Count
有人可以解釋這對一個菜鳥像我..
在此先感謝。
此外,有時我得到在24芯機的並行任務的峯值期間的進程相關聯大約90個線程。但是經過長時間的並行處理完成後,線程數將回到42左右。 – hisoka21 2013-02-11 10:09:58
您的CurrentProcess是IIS。而且,對於IIS來說,至少有少數線程是正常的。 – 2013-02-11 10:14:21
嗨Henk!感謝您及時的回覆。你的意思是我使用上面的代碼得到的線程總數不是僅由我的應用程序生成的? – hisoka21 2013-02-11 10:21:03