我想使用 select.epoll()在我的 Python 库中。
不幸的是,epoll 并非随处可用。
我需要一种回退到 select.select() 的方法.
我试图在 pypi 上找到一些东西,但没有找到匹配的包:https://pypi.python.org/pypi?%3Aaction=search&term=epoll&submit=search
我该如何解决“如果 epoll 不可用则从 epoll 回退到 select”?
最佳答案
Python 3.4 引入了 selectors module .它提供了一个 DefaultSelector
,它是“当前平台上可用的最有效实现”的别名。
这是一个快速使用示例:
sel = selectors.DefaultSelector()
sel.register(fp1, selectors.EVENT_READ)
sel.register(fp2, selectors.EVENT_READ)
sel.register(fp3, selectors.EVENT_READ)
for key, mask in sel.select():
print(key.fileobj)
您可以找到更多complete example on the Python documentation .
DefaultSelector
将按以下顺序尝试:
epool
(Linux),kqueue
(FreeBSD/NetBSD/OpenBSD/OS X) 或/dev/poll
(Solaris)<投票
(Unix)选择
关于Python:如果可用,则使用 epoll 的库,回退选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48203397/