摘要: 一、进程: 进程是资源分配单位 进程切换需要的资源很大,效率很低 二、线程 线程是操作系统调度的单位 线程切换需要的资源一般,效率一般。 三、协程: 协程切换任务资源很小,效率最高。 四、小结: 多进程、多线程根据CPU核数的不同,可能是并行的, 但是协程是在一个线程中,所以它一定是并发的。 阅读全文
posted @ 2021-01-22 13:35 御姐玫瑰 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 一、需求分析 1、补充说明:使用协程实现多任务只需要使用gevent实现的方式即可,之前两种(yield和greenlet)仅仅只是原理。 2、要求:使用协程实现图片下载器功能 3、分析: a、在Python中使用网络功能 b、使用协程实现图片下载器功能: 基本语法: import urllib.r 阅读全文
posted @ 2021-01-22 13:28 御姐玫瑰 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 一、gevent的使用说明 1、gevent的介绍: a、它是异步并发库,它实现并发的原理就是采用了协程的概念来实现。 b、使用gevent模块中的spwan类创建出一个greenlet对象, 再通过这个对象来实现多任务。 c、gevent是对greenlet的进一步封装。 2、安装: sudo p 阅读全文
posted @ 2021-01-22 13:20 御姐玫瑰 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 一、greenlet使用说明: 1、使用greelent可以替换yield的多任务。 2、greelent类对yield完成多任务进行了简单的封装。 即:在任务中不需要添加yield关键字了。 3、安装:pip install greenlet 二、代码演示 from greelet import 阅读全文
posted @ 2021-01-22 13:06 御姐玫瑰 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 一、yield完成多任务的特点: 1、相对进程、线程而言,它占用的资源最小 2、线程是并发,假的多线程。因为它是一个进程中的一个线程 二、执行流程 1、先按顺序执行task_1函数,当执行到【yield】关键字处时,暂停执行 2、task_1函数暂停执行后,程序立马切换至task_2函数继续执行, 阅读全文
posted @ 2021-01-22 13:03 御姐玫瑰 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一、迭代器 1、定义:即:一个对象中既包含了【__iter__】方法,又包含了【__next__】方法 2、核心:它保存了一段生成数据的代码。 二、生成器 1、定义:这个对象中既没有【__iter__】方法,也没有【__next__】方法, 它是一个特殊的迭代器,对象中必须要有【yield】关键字, 阅读全文
posted @ 2021-01-22 12:58 御姐玫瑰 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 一、生成器说明 1、生成器是一个特殊的迭代器。 因为它既没有【__iter__】方法,也没有【__next__】方法。 2、示例1:使用while循环去遍历自定义的生成器对象 def create_num(all_nums): a, b = 0, 1 current_num = 0 while cu 阅读全文
posted @ 2021-01-22 12:54 御姐玫瑰 阅读(281) 评论(0) 推荐(0) 编辑
levels of contents