2

根据eventlet 文件

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

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

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

4

1 回答 1

2

不,那要么

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

线程池是最简单、最便携和最可预测的方式。您可以轻松地用eventlet.tpool.execute.

于 2013-06-10T09:04:39.747 回答