长期以来,不知道同步和异步是怎么区分的,概念性的东西总是混淆不清,所以要系统地整理它,以供今后参考…
书目同步异步两者比较优缺点,使用场景异步的优点异步使用场景同步的优点同步使用场景
同步
同步可以看作是一种单线执行,不管是成功执行还是失败执行,都返回一个结果,在没有得到结果之前什么都不做,傻等着。
提出任务后,不把控制权交给系统,继续等待。
异步在执拗的小虾任务提出后,可以继续执行另一项任务,而不用在意任务的结果是什么。
提交任务后,将控制权交给系统,系统可以执行其他任务。
两者比较1、同步执行效率比较低,耗时较长,但有助于我们控制过程,避免很多无法控制的意外情况;
2、异步执行效率高,节约时间,但消耗更多资源,也不利于过程控制
优缺点和使用场景异步的优点1、异步过程可以很快向调用方返回初步结果。
2、异步过程可以使最终结果数据延迟被调用方,在此期间可以执行更多的附加工作,比如记录结果。
3、异步进程在运行中,可以释放占用的线程等资源,避免阻塞,重新获取线程处理直到结果出来。
4、异步过程可以在多次调用的结果出现后,再汇总一次返回结果集合,提高响应效率
异步使用场景1、不包含共享资源或对于共享资源为只读(非独占)的操作
2、没有时间上的严格关系
3、不需要原子操作或可以用其他方法控制原子性
4、常用于IO操作等费时操作。 因为这会影响顾客的体验和使用性能
5、不影响主线程逻辑
同步的优点1、同步过程通常结果处理更简单,可以就近处理。
2、同步进程对结果的处理总是在与前文相同的上下文中。
3、同步过程可以轻松捕获、处理异常。
4、同步过程是按顺序执行最自然的控制过程的方式。
同步使用场景如果不使用异步