比如.net中,await,async 什么情况下会使用到?有什么好处?
先说结论:
异步采用IO的DMA模式,不会消耗CPU资源。计算密集的工作,采用多线程。IO密集的工作,采用异步
举例:
网络爬虫爬数据,如果数据很庞大,这个时候就需要使用异步了。
DMA:Direct Memory Access是IO的操作模式,可以直接访问内存,不经过CPU,不消耗CPU资源。
异步和多线程区别就是,充分利用DMA释放CPU压力。
手打不容易:如果有帮助,请采纳
同步,就是你去饭店点菜,必须等
厨师做好了,你才能吃饭;
异步,就像叫外卖,等
待期间,你可以干别的事情,外卖到了会通知
你。
在等待
一件比较耗时
的外部过程
的情况下会用到异步编程
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
可记得初中语文有篇文章叫<统筹方法>?
另外一个实用的异步应用便是消息推送之类的, 给100万个会员推送消息, 平均发一条消息要0.2秒, 若发完一个再发下一条的话, 这代码要跑到什么时候去了? 我还要看发送结果报表呢! 异步的消息队列就是个解决方案, 消息存放在消息队列, 快速响应统计处理报表(暂不关注消息是否送达). 你的代码跑完了,任务完成了! 剩下的事情, 就交由消息队伍去处理了, 10个线程发消息慢了, 队伍就生成100个线程去分发, 对吧, 看你消息服务器的硬件配置了!