码迷,mamicode.com
首页 > 编程语言 > 详细

Python之旅:并发编程之协程

时间:2018-05-03 01:01:03      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:info   优先   png   主线程   不能   实现   图片   协程   阻塞   

一 引子

    本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态

    cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长或有一个优先级更高的程序替代了它

技术分享图片

ps:在介绍进程理论时,提及进程的三种执行状态,而线程才是执行单位,所以也可以将上图理解为线程的三种状态 

    一:其中第二种情况并不能提升效率,只是为了让cpu能够雨露均沾,实现看起来所有任务都被“同时”执行的效果,如果多个任务都是纯计算的,这种切换反而会降低效率。为此我们可以基于yield来验证。yield本身就是一种在单线程下可以保存任务运行状态的方法,我们来简单复习一下:

Python之旅:并发编程之协程

标签:info   优先   png   主线程   不能   实现   图片   协程   阻塞   

原文地址:https://www.cnblogs.com/moyand/p/8983283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!