Advertisement

Python gevent详解:协程、进程与线程

阅读量:

我们日常所提及的协程Coroutine,实际上是corporate routine这一术语的缩写形式,若直接进行翻译可表述为协同例程,但在实际应用中,人们往往将其简称为协程。

在Linux操作系统中,线程被视作一种轻量级的进程形式,而协程则常被描述为轻量级线程,亦即微线程。

进程与协程
接下来将对进程与协程之间的共性与差异进行比较分析:

共性:
二者均可被视为一种执行流程,在运行过程中能够实现挂起操作,并且在后续可以从中断的位置继续执行,这种特性本质上都可以归类为continuation。为了更好地理解这一点,我们可以在Linux系统上运行一个简单的hello程序来进行演示:

在这里插入图片描述

shell进程和hello进程:

  1. 初始阶段,shell进程处于运行状态,并持续等待用户输入命令行指令
  2. 当执行hello程序时,shell借助系统调用机制来响应用户的请求,此时系统调用将控制权移交至操作系统。操作系统会保存当前shell进程的上下文信息,随后创建hello进程及其对应的上下文,并将控制权转移至新生成的hello进程
  3. hello进程完成执行后

全部评论 (0)

还没有任何评论哟~