为什么程序要“同时干很多事”?从 CPU 到线程模型讲透并发编程

发布时间:2026/8/22 11:11:51
为什么程序要“同时干很多事”?从 CPU 到线程模型讲透并发编程
刚开始学并发编程时很多人都会觉得它有点“反直觉”。一个程序明明可以先执行 A再执行 B最后执行 C为什么非要搞出多线程线程池锁CASvolatile并发容器这些复杂东西其实并发编程出现的原因很简单程序里的很多时间并不是在计算而是在等待。如果等待期间什么都不做CPU 就被浪费了。一、先想象一家只有一个服务员的餐厅假设餐厅只有一个服务员。现在 A 客人点了一份牛排。如果服务员的工作方式是给 A 点菜↓去厨房↓站着等牛排做好↓端给 A↓再接待 B牛排要做 10 分钟。那这 10 分钟里B、C、D 客人全部只能干等。显然不合理。正常的做法应该是给 A 点菜↓厨房开始做同时给 B 点菜↓给 C 结账↓给 D 上水A 的菜好了以后再回来给 A 上菜。这就是并发最核心的思想一个任务在等待时让执行资源去处理其他任务。程序也是一样。二、程序为什么有这么多“等待”比如一个 Web 接口publicUsergetUser(Longid){returnuserMapper.selectById(id);}