首页 新闻 会员 周边

这种场景适合用异步方法(子线程)吗

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

当去请求一个第三方接口时可能等待的时间比较长,然而在请求完成后是要把请求的结果返回给客户端的,如果像发送邮件之类的操作不需要考虑耗时操作的结果,开一个子线程是能提高性能的,然而当需要获取第三方请求的结果,意味着最终主线程还是要等待子线程完成,最后把结果发送给客户端,这样一来感觉就和同步没有什么区别了

ludi的主页 ludi | 初学一级 | 园豆:5
提问于:2017-12-22 14:48
< >
分享
所有回答(3)
0

是的.异步操作要是等待了.和同步操作就没区别

吴瑞祥 | 园豆:29449 (高人七级) | 2017-12-22 14:53
0

区分下异步和多线程,你这块如果是异步做的话区别是在服务吞吐量会变大,假设你这里只有1个线程用于处理请求,那么同步或者多线程处理后续高开销io的话这里还是一个接一个处理。但异步不同,全程的异步中worker thread在这种情况下会继续处理后续请求

Daniel Cai | 园豆:10424 (专家六级) | 2017-12-22 16:30

不太明白,异步不也是多开一个子线程吗

支持(0) 反对(0) ludi | 园豆:5 (初学一级) | 2017-12-22 16:32

@ludi: 不能说是额外起线程,相反是找空闲的线程,如果当前线程刚好被抓了壮丁那就会继续用当前线程来撸了

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-12-22 19:08

@Daniel Cai: 那么我们用async/await的方式,是异步还是多线程呢

支持(0) 反对(0) ludi | 园豆:5 (初学一级) | 2017-12-25 18:10

@ludi: 异步,但使用哪个线程是由当前TaskScheduler决定

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-12-25 19:03
0

这样想是没什么区别,异步除了这个功能以外还有个就是可以处理UI里处理不了的东西,但是你这里也用不上这个,我感觉是没什么差

西红柿里没有番茄 | 园豆:645 (小虾三级) | 2017-12-29 23:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册