1.同步概念:阻塞式调用,调用方必须等待响应方执行完毕才返回;
2.异步:非阻塞式调用,立即返回,调用方无需等待响应方返回实际结果,响应方会通过状态、通知或回调来告知调用方;
使用场景:耗时任务或电商下单链路的非核心链路调用;
3.优缺点对比:
- 同步优点:可拿实时结果进行处理,上下文信息始终在一个代码块,处理更直观;对错误和异常处理可以实时;
- 异步优点:不影响主流程的执行,降低响应时间,提高应用性能;及时释放系统资源,如线程占用,让系统做更有价值的事;
- 同步缺点:耗时的接口响应会影响整个流程的性能;
- 异步缺点:为保障数据最终一致性,需对账系统去做监控和保障;需更多异步任务去补偿系统间数据一致性;
4.阻塞:调用结果返回之前,当前线程被挂起。调用线程只有在得到结果之后才返回。ServerSocket;
5.非阻塞:非阻塞在不能立刻得到结果前,该调用不会阻塞当前线程,而立即返回;Socket;
6.对比:
- 同步异步:关注点是得到结果的方式;同步是实时返回结果,异步是通过共享变量、通知或回调来得到结果;
- 阻塞非阻塞:关注点在程序等待调用结果返回时的状态;