python eventlet - 文件异步(非阻塞)io

时间:2013-06-10 00:01:46

标签: python eventlet

根据eventlet document

It uses epoll or libevent for highly scalable non-blocking I/O.

我知道这里的非阻塞I / O涵盖了与套接字交互时的情况。套接字被eventlet绿化/修补后,套接字连接变为非阻塞。

我的问题是:这里的非阻塞I / O是否也包含文件I / O?

1 个答案:

答案 0 :(得分:2)

没有。那会是

  • 带有回调的真正异步IO :施加意外限制;在Windows和FreeBSD上很好但
  • 非阻塞IO :禁用文件系统缓存(至少在Linux和FreeBSD上)并且仍然不能保证文件IO不会阻塞(至少在常用文件系统上的Linux上)
  • 线程池:产生意外的性能和内存成本

线程池是最简单,最便携和最可预测的方式。您可以使用eventlet.tpool.execute轻松打包来电。