单核cpu下,线程其实是串行的。操作系统中有一个组件叫做任务调度器,将cpu的时间片(windows下时间片最小约为15毫秒)分给不同的程序使用,只是由于cpu在线程间(时间片很短)的切换非常快,人类感觉是同时运行的。总结为一句话就是微观串行,宏观并行。
一般会将这种线程轮流使用CPU的做法称为并发,concurrent
- 并发(concurrent) 是同一时间应对多件事情的能力
- 并行(paraller) 是同一时间动手做多件事情的能力
单核cpu
多核cpu
多核cpu下,每个核(core)都可以调度运行线程,这时候线程可以是并行的