开篇:同步调用的痛点
想象你去餐厅吃饭,点了三道菜。同步模式就是:你点了第一道菜,然后干等着,等第一道上了,再点第二道,又干等着......三道菜总共等了 30 分钟。
异步模式就是:你一次性把三道菜都点了,厨房同时做三道菜,10 分钟后全上齐。从 30 分钟变成 10 分钟,效率提升 3 倍。
在程序中也是一样。假设你需要调用三个远程服务,每个耗时 1 秒:
// 同步方式:总共 3 秒
String result1 = callServiceA(); // 1s
String result2 = callServiceB(); // 1s
String result3 = callServiceC(); // 1s
大约 8 分钟