首页 新闻 会员 周边

多线程用法

0
悬赏园豆:50 [已解决问题] 解决于 2009-06-04 15:10

多线程有同步线程和异步线程之分,两者的用途在什么地方。

为什么web程序不怎么用多线程,在什么情况下用到多线程啊。请举个例子

而做winform的程序用多线程的比较多,这是为什么啊。好处在哪里。是不是充分利用客户端的cpu。

请问服务器端一般是不是会自动把请求转化成多线程任务。

 

潇潇息一去不复返的主页 潇潇息一去不复返 | 菜鸟二级 | 园豆:285
提问于:2009-06-02 01:39
< >
分享
最佳答案
0

首先“多线程有同步线程和异步线程之分"这种说法是错误的

而是

某些情况下多个线程必须进行同步

这种情况下需要一些技巧以实现线程同步

在单核CPU的情况下一定是只有一个线程处于激活状态,多个线程肯定是不同时执行的

asp.net的实现本身就封装了大量复杂的多线程,只是开发asp.net时一般不需要对整个请求响应机制了解的很深刻的

其实对于asp.net如果正确的利用多线程,很多情况下可以缩短客户端的响应时间

比如大多数网上商城,将订单处理通过微软的MessageQuene来实现,其实就是将订单的保存等操作放到了另一个线程中执行,使得web响应线程不会因为保存订单而被阻塞

Winform中多线程用的比较多是因为WinForm中多线程处理很多时候都必须由开发者来控制

好处很多,但用不好,很多时候问题也很多,主要是为了缩短用户的等待时间,避免UI线程被某些操作长期阻塞,还有执行一些轮训操作时必定是在单独的线程中进行监听或响应的

在asp.net中IIS是一直轮训监听80端口(如果没有更改),如果有新的请求过来,也就是有新的人,用浏览器访问web页面或访问web service等,IIS会创建一个新的线程处理新的请求,Http的底层实现也是Tcp,如果你在web中用到了多线程,在IIS对应的处理线程中又会再创建线程

以上是个人的理解,希望对你有所帮助

花生1 | 小虾三级 |园豆:872 | 2009-06-02 21:39
其他回答(3)
0

asp.net 本来就是多线程的,对于并发请求asp.net 会同时开多个线程来处理。

eaglet | 园豆:17139 (专家六级) | 2009-06-02 19:15
0

楼上描述得很清晰,MiniThi@k  正解。

革命军马前卒 | 园豆:255 (菜鸟二级) | 2009-06-02 22:30
0

http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html

这篇文章绝对推荐。

winzheng | 园豆:8797 (大侠五级) | 2009-06-03 14:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册