您的位置:首页 > 编程语言 > ASP

Asp.net的异步处理模型-Asp.net的异步如何提高服务器的吞吐量

2008-11-22 15:50 302 查看
public class Handler1 :IHttpAsyncHandler

public class AsyncHandler : IAsyncResult

{

{

{

{

{

{ throw new NotImplementedException(); }

{

{ return false; }

{

{ return _completed; }

{

{

Thread.Sleep(5000);//模拟IO

_context.Response.Write("<p>Completion IsThreadPoolThread is " + Thread.CurrentThread.IsThreadPoolThread + "</p>\r\n");

_context.Response.Write("Hello World from Async Handler!" + Thread.CurrentThread.ManagedThreadId);

_completed = true;

_callback(this);

}

}

这是Asp.net中的异步处理。Asp.net的异步处理目的就是要搞高服务器的接受请求的处理能力,但有一点不明白

使用异步处理时,在BeginProcessRequest时,会将处理当前请求的线程放回到线程池中。放回到线程池中的此

线程继续接受新的请求,但是在StartAsyncWork这个时候,同样会从当前线程池中获取一个线程继续处理这个IO,

这样并不能提高服务器的吞吐量,相反会在线程间切换浪费CPU时间和资源,Asp.net异步处理就没有意义了

(其实是有意义的)。

问题:Asp.net的异步能够提高服务器的吞吐量,

但是我始终无法理解他是怎么提高其处理能力的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: