0%

我们总是会遇到各种遗留系统因为种种原因不能重新开发又不能“弃之如履”,那么有一套经验总结的方法论显得尤为必要,本文简单记录了一些要点,抛砖引玉。

阅读全文 »

引子

协程,又称微线程,纤程。英文名Coroutine。

那么为什么需要协程?

引出问题

  • 同步编程的并发性不高
  • 多进程编程效率受CPU核数限制,当任务数量远大于CPU核数时,执行效率会降低。
  • 多线程编程需要线程之间的通信,而且需要锁机制来防止共享变量被不同线程乱改,而且由于Python中的GIL(全局解释器锁),所以实际上也无法做到真正的并行。
阅读全文 »

前言

学习了一下FastAPI,感觉其实现了目前python-web需要的大部分功能,可以说是这些python web框架的集大成者。我所关注的特性如下:

  1. 自动化文档。文档标准是OpenAPI,也就是swagger。目前xView项目实现了与FastAPI类似的自动化文档,但是欠缺了一点是:没有使用Pydantic这样的声明类型。request参数的构造也咩有FastAPI灵活便捷。
阅读全文 »

IO模型

在Linux(UNIX)操作系统中,共有五种IO模型,分别是:阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动IO模型以及异步IO模型。

阅读全文 »

什么是异步编程

提到异步,那么就有同步。需要了解一下几个名词:同步/异步、阻塞/非阻塞。

阅读全文 »

在web开过程中,经常会遇到高并发和资源共享的问题,这些问题的本质是:并行的请求转成串行。我们应该考虑的是怎么在尽可能提高吞吐量的情况下,保证资源的合理生产和消耗。

阅读全文 »