并发与并行分别描述多项工作如何组织推进,以及它们是否在同一时刻实际执行;异步则描述调用与结果完成之间的控制关系。
三个不同维度
单核可以通过交替执行实现并发,多核可以让部分工作并行。异步接口允许调用者在等待结果时继续工作,但不会自动增加 CPU 执行资源。
例如,服务等待两个独立接口时可并发发出请求,减少串行等待;对同一线程上的两段 CPU 计算,仅包装成异步函数不代表同时执行。
应用边界
选择方案应先区分 I/O 等待、CPU 运算和共享资源竞争。增加并发可能提高资源利用率,也可能造成连接耗尽、排队和下游过载,应同时设置并发上限和超时。