只是出於好奇,在asp.net中可用於處理請求的最大線程數是多少。什麼是Asp.net中可用的最大線程數ThreadPool
是否asp.net釋放他們的任何I/O或數據庫操作,以便可以處理最大數量的請求?
只是出於好奇,在asp.net中可用於處理請求的最大線程數是多少。什麼是Asp.net中可用的最大線程數ThreadPool
是否asp.net釋放他們的任何I/O或數據庫操作,以便可以處理最大數量的請求?
它是通過machine.config中控制。
配置>的System.Web> 中processModel
<processModel
maxWorkerThreads="num"
maxIoThreads="num"
minWorkerThreads="num"
minIoThreads="num"
...
/>
它被設置在每CPU基礎。單個CPU的默認值是20/20。
http://msdn.microsoft.com/en-us/library/7w2sway1(v=VS.100).aspx
在.NET 4.0中都有它是每個CPU 250的工作線程和1000 I/O完成線程...
您可以控制工作線程的使用GetMaxThreads和SetMaxThreads方法的限制... –
什麼是你的來源? –
要釋放I/O操作的工作線程,您需要使用async/await模式。當您「等待」異步文件操作時,線程將被釋放回ASP.NET線程池,然後用於處理其他請求,直到文件I/O操作完成。
http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4
感謝您的信息,但我仍然對我的問題的第二部分感到困惑,即如果asp.net代碼忙於執行一些IO或數據庫操作,是否會釋放工作線程。 –
'ThreadPool'由框架管理。因此,很難預測它何時會被髮布。但是,然後,整個想法是,你不應該打擾它。 – Mrchief