异步编程
异步编程-----> 异步I/O(AIO)-----> 协作式并发 -----> 提高了CPU的利用率 -----> 协程
- 同步—> 排队 ----> 有顺序 ----> 阻塞和等待
- 异步—> 不排队 ----> 没有顺序 ----> 不阻塞和不等待
要想了解异步编程的用法,首先得清楚迭代器和生成器
- 迭代器(iterator):实现了迭代器协议的对象
- 迭代器协议实际上是两个魔术方法:
- _iter_
- _next_
# 写一个迭代器获取到斐波那契数列:1 1 2 3 5 8 13 21 34 55 ......
class FibTier:
def __init__(self, num):
self.a, self.b = 0, 1
self.count = 0 # 计数器
self.num = num
def __iter__(self):
return self
def __next__(self):
if self.count < self.num:
self.a, self.b = self.b, self.a + self.b # 递推公式
self.count += 1
return self.a
raise