0、进程池概念-优点-两种添加任务的方式
提前准备好一定数量的进程
优点
提高响应用户需求的效率
节约 大量的进程创建和销毁的系统开销
自动对进程进行管理和维护
工作进程-执行用户任务
控制进程-接收任务 分配任务 维护工作进程
添加任务的方式
apply 添加任务并且阻塞等待任务完成
return self.apply_async(func, args, kwds).get()
apply_async 添加任务并且不需要等待任务完成
1、迭代概念
遍历
2、可迭代对象
可以被迭代的对象
获取可迭代对象中迭代器
迭代器 = iter(可迭代对象)
通过迭代器获取下一个元素的值
下一个元素的值 = next(迭代器)
实现可迭代对象
类中实现 __iter__方法 ---------------> 提供迭代器
3、迭代器概念
实现迭代器
类中实现__iter__方法 迭代器是一种可迭代对象
类中实现__next__方法 提供下一个元素的值
0 1 1 2 3 5 8 13 21 34 .........
4、生成器概念
两种:
生成器表达式 [x for x in range(100)] -----> (x for x in range(100))
生成器函数 含有yield关键字的函数
断点技能:
F7 步进 step into
F8 步过 step over
yield关键字作用
挂起当前代码 将yield后面的值 返回到调用生成器对象的地方 <return>
当再次唤醒生成器代码的时候 yield能够恢复代码 从上次运行的地方紧接着继续执行<接收额外数据 赋值给yield等号左边变量
唤醒生成器两种方式
next(生成器对象)
生成器对象.send(发送的数据)
注意事项:
第一次唤醒生成器的时候 必须要使用next(生成器)(因为生成器代码从最开运行的地方 没有yield接收额外数据)