什么是异步

Article detail

前端

2025/11/19 · 4 分钟阅读

什么是异步

什么是异步

我的理解是程序可以在一定的时间范围内运行完,可以在运行这程序的时候将另一个程序也可以开始,只要将他们在排列在一起执行,可以优化一个整体的性能,

gpt答案

🧠 异步的真正本质是什么?

⭐ 异步的核心是:不等待耗时任务完成,继续做别的事。

它和“同时运行”没有必然关系。

这句话很关键:

❗ 异步 ≠ 同时运行(这是并行的概念)
❗ 异步 = 不阻塞,不傻等,任务完成后再通知我

🔥 用例子秒懂(非常关键)
◼ 同步(阻塞)

你叫外卖,你站在门口等骑手送到,不做别的事。

程序状态:

等待网络 → 等10秒 → 收到结果 → 继续执行

◼ 异步(非阻塞)

你叫外卖后去玩游戏,骑手到了给你打电话通知。

程序状态:

发起网络请求 → 不等 → 继续执行其它代码
(等结果回调通知)→ 处理外卖数据

注意:
你在玩游戏的时候,外卖小哥不是和你一起“并行计算”,
只是你不等他而已。

🧩 那“同时执行两个程序”是什么?

那叫:

并发(concurrency)

多个任务轮流执行(单核也能并发)

并行(parallel)

多个任务真正物理同时执行(需要多核 CPU)

🧠 关系总结(很重要)
概念 解释 是否同时运行
同步 等结果,阻塞 ❌
异步 不等结果,回头通知 ❌(不要求)
并发 多任务轮流执行 ⚠️“看起来”同时
并行 多核真正同时执行 ✔️
📌 最关键的一句总结(记住这个就不会弄混)

异步解决的是“等待”问题,不是“同时执行”问题。

并行 / 并发解决的是“同时执行”。

🧪 用你自己的话,我帮你改善一下理解

你原本的理解:

程序可以在一定时间运行完,同时开始另一个程序 → 性能提升

改成更准确的:

异步是:程序发起耗时任务后,不等待它完成,继续执行其他任务;当结果准备好时再回调/通知。这样避免阻塞,提高系统吞吐量。

这样就完全正确了。

评论

动作测试