线程,进程,协程, 并发,并行,同步,异步概念解析( 二 )


3.3 进程与线程+单核与多核其实刚才老王那个例子已经能解释进程与线程的操作了,但是有些不太谨慎 。

  • 如果我们使用的是 单核CPU ,那么我们是无法执行并行操作的,只能做到并发,这样来充分调用CPU的资源 。
  • 如果我们使用的是 多核CPU ,我们才可以真正的意义上做到并行操作 。
我们的操作系统在进程或线程间切换是比较消耗资源的,因为要保存当前运行状态的上下文信息,而且进程或线程的切换是由操作系统决定的,到达运行时间之后,操作系统会将当前执行的任务挂起,我们只能等待下个分配到的时间片来继续执行任务 。这也就引出来协程的概念 。
3.4 协程 Coroutine就像我们刚才说到的,任务的切换是操作系统来控制,我们有没有什么办法来减小这种开销呢?我们就可以使用协程, 协程我们可以理解为轻量级的线程  。协程在执行过程中不会由操作系统直接操作,而是由编译器决定,比如协程A说我当前的任务还得一段时间执行完,我可以让出当前占用的资源了,协程A就会通知调度器,由调度器来分配下一个协程执行 。




推荐阅读