? “Python猫” ,一个值得加星标的公众号
花下猫语: 年关将近,不知各位过得怎样?我最近有些忙,收获也挺多,以后有机会分享下。吃饭时间,追了两部剧《了不起的麦瑟尔夫人》、《曼达洛人》,很喜欢这类风格的剧。想看剧的同学,不妨考虑下。回归正题,分享一篇文章。作者:lgj_bky(经作者授权转载)
原文: https://www.cnblogs.com/lgjbky/p/10838035.html剧照 | 《了不起的麦瑟尔夫人》
进程的定义:
进程,是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。
线程的定义:
操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
进程和线程的关系:
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU.
协程的定义:
协程通过在线程中实现调度,避免了陷入内核级别的上下文切换造成的性能损失,进而突破了线程在IO上的性能瓶颈。
协程和线程的关系
协程是在语言层面实现对线程的调度,避免了内核级别的上下文消耗。
Python协程与调度
Python的协程源于yield指令。yield有两个功能:
- yield item用于产出一个值,反馈给next()的调用方。
- 作出让步,暂停执行生成器,让调用方继续工作,直到需要使用另一个值时再调用next()。