协程通过引入微线程的方式,实现了在单个线程中同时执行多个任务的功能,从而可以充分利用系统资源提升性能。

作者:禅与计算机程序设计艺术

1.简介

在计算机科学领域,协程(Coroutine)是一个编程概念。它使得一个线程里可以暂停运行,转而去执行另一个线程。协程能够极大地减少线程创建和切换开销,因为线程切换涉及到操作系统的 CPU 抢占、进程调度等额外开销。相比于线程,协程有以下优点:

  1. 更加容易编写:协程允许更细粒度的并发,允许多任务共享内存,因此可以更简单地编写出正确、健壮的异步 I/O 模型。
  2. 更高效率:由于协程可以在非抢占状态下执行,因此不用进行复杂的线程同步,调度,避免了锁竞争等问题,有效地提升了处理能力。
  3. 更易理解:由于每个协程都是一个独立的执行体,因此很好地隔离了内部状态,也不会影响其他协程的运行,更加容易分析和调试。

通过引入微线程的方式,协程就可以在单个线程中同时执行多个任务。例如,一个程序可能需要执行几个耗时的 IO 操作,但是又不能让整个线程处于等待状态,因为那样的话 CPU 将无法运行别的任务。协程通过引入微线程的方式,就可以在单个线程中并行地运行多个 IO 操作,从而提升整体性能。

2.基本概念术语说明

1.协程

协程就是一个函数,这个函数可以暂停执行,然后转而执行别的函数,在适当的时候再返回来接着执行。它是一种比线程更小的子程序,但又与线程非常相似。协程最大的特点就是,它只需要很少的栈空间就可完成工作。换句话说,协程实际上是用户级线程。

2.微线程

微线程是

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/131971633