web开发异步理解

并发:

web服务多有IO密集行操作,IO效率会直接影响接口性能。首先可以通过多线程并发处理,其次可以通过多进程并行,现在流行起来异步server,由事件驱动,可以更大应用每一核CPU的性能,发展到协程,使异步server开发更直观。

协程优劣:

优势:

  1. 无需线程上下文切换的开销
  2. 无需原子操作锁定及同步的开销
  3. 高并发+高扩展性+低成本:一个CPU支持上万的协程都不是问题。所以很适合用于高并发处理。

    缺点:

  4. 无法利用多核资源:协程的本质是个单线程,它不能同时将单个CPU的多个核用上,协程需要和进程配合才能运行在多CPU上.当然我们日常所编写的绝大部分应用都没有这个必要,除非是cpu密集型应用。
  5. 进行阻塞(Blocking)操作(如IO时)会阻塞掉整个程序:这一点和事件驱动一样,可以使用异步IO操作来解决。
Table of Contents