首页 新闻 会员 周边

异步优化的进程疑问

0
悬赏园豆:50 [待解决问题]

《Effective C#》的基于任务的异步编程第30条结尾写到一段话

如果在响应Web请求的过程中必须执行某项耗时很长且计算量较大的工作,那么应该把它转交给另外一个进程,乃至另外一台计算机去做。

请问交给另外的进程就不会跟当前的线程抢资源?

舒碧的主页 舒碧 | 初学一级 | 园豆:169
提问于:2020-01-23 16:18
< >
分享
所有回答(4)
0

交给另外的进程,就不会霸占当前进程的线程池中的线程,每一个 web 请求都需要一个线程来处理,对于高并发应用场景,线程成了宝贵资源。

那排队买票打个比方,就怕前面买票的人到他时还没想好买什么票,耽误很长时间让售票人员帮他查票,如果让这个人先出队查询并确定要买的票再重新排队,排队效率就会高很多。

dudu | 园豆:30979 (高人七级) | 2020-01-23 16:32
0

如果计算量比较大,建议另开个线程来进行处理,这样也不影响主线程的运行(否则主线程窗口会一直鼠标旋转)。
也可以看看我这篇博文:https://www.cnblogs.com/lzhdim/p/3537081.html

lzhdim | 园豆:642 (小虾三级) | 2020-01-24 18:06
0

交给别的线程或者进程处理,当然还会抢计算资源,交给另一台计算机就不会抢占计算资源了。

把工作交给别的线程是为了防止当前线程阻塞,保证响应能力,不是为了节省资源

拓拓 | 园豆:1050 (小虾三级) | 2020-01-29 21:31
0

浪费一点点资源,让资源得到最大程度的利用。

czd890 | 园豆:14412 (专家六级) | 2020-02-08 14:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册