起初是在看Fluent Python, 对其中的asyncio实在难以理解, 找了好多文献, 也对其多了解一些.

Coroutine是什么

Youtube上的这个演讲很不错, 希望大家也能看看协程到底和yield是什么关系

https://www.youtube.com/watch?v=M-UcUs7IMIM

又看到了C++与协程相关的文档:

http://cpp.mimuw.edu.pl/files/await-yield-c++-coroutines.pdf

这是一种用户级的线程, 能够有效的提高并发

  • 上下文切换也是有开销的, 但相比于线程间的切换, 可以忽略不计
  • 但协程之间访问共享变量是十分轻松的, 而且不需要加锁

操作系统

批处理系统: 多道无序调度, 系统利用率高, 吞吐量大, 平均周转时间长.

优点

  1. 当系统资源忙时可以切换任务运行
  2. 通过每分钟的监控, 避免了系统资源的闲置
  3. 通过保持高的利用率, 使得所有任务可以分期偿还
  4. 允许系统对不同的任务使用不同的优先级
  5. 普通的程序每次执行一个任务都要运行一次程序(处理逻辑程序), 批处理系统可以做到多个事务只运行一次程序(调度程序).

感觉最后一点有些多余, 减少了主程序的运行次数并没有在本质上减少了程序逻辑的 运行次数.

一点心得

协程的存在在我看来只是为了提高并发量, 也就是吞吐量, 同一时刻可以应对更多的 事件, 可以处理更多用户的请求. 但是真正的运行过程中, 所有事件只是在不停的轮转, 也就是说, 每个事务的平均处理时间延长了.