首先“多线程有同步线程和异步线程之分"这种说法是错误的
而是
某些情况下多个线程必须进行同步
这种情况下需要一些技巧以实现线程同步
在单核CPU的情况下一定是只有一个线程处于激活状态,多个线程肯定是不同时执行的
asp.net的实现本身就封装了大量复杂的多线程,只是开发asp.net时一般不需要对整个请求响应机制了解的很深刻的
其实对于asp.net如果正确的利用多线程,很多情况下可以缩短客户端的响应时间
比如大多数网上商城,将订单处理通过微软的MessageQuene来实现,其实就是将订单的保存等操作放到了另一个线程中执行,使得web响应线程不会因为保存订单而被阻塞
Winform中多线程用的比较多是因为WinForm中多线程处理很多时候都必须由开发者来控制
好处很多,但用不好,很多时候问题也很多,主要是为了缩短用户的等待时间,避免UI线程被某些操作长期阻塞,还有执行一些轮训操作时必定是在单独的线程中进行监听或响应的
在asp.net中IIS是一直轮训监听80端口(如果没有更改),如果有新的请求过来,也就是有新的人,用浏览器访问web页面或访问web service等,IIS会创建一个新的线程处理新的请求,Http的底层实现也是Tcp,如果你在web中用到了多线程,在IIS对应的处理线程中又会再创建线程
以上是个人的理解,希望对你有所帮助
asp.net 本来就是多线程的,对于并发请求asp.net 会同时开多个线程来处理。
http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html
这篇文章绝对推荐。