多线程没有提供真正意义上的并行处理,每核CPU在某一时刻仍然只能运行一个进程,由于线程1和线程2是共享某核CPU资源的。能够简单的认为每核CPU在独立执行进程的能力上,有一个资源是惟一的,线程1获取了该资源,线程2就无法获取。 可是,线程1和线程2在不少方面上是能够并行执行的。好比能够并行取指、并行解码、并行执行指令等。因此虽然单核在同一时间只能执行一个进程,但线程1和线程2能够互相帮助,加速进程的执行。 而且,若是线程1在某一时刻获取了该核执行进程的能力,假设此刻该进程发出了IO请求,因而线程1掌握的执行进程的能力,就能够被线程2获取,即切换到线程2。这是在执行线程间的切换,是很是轻量级的。(WIKI: if resources for one process are not available, then another process can continue if its resources are available)