引导下的libuv是使用epoll还是在unix中选择(2)

Noo*_*bie 2 unix epoll node.js libuv select2

我一直在阅读nodejs如何使用libuv来执行异步I/O. 阅读更多关于它的感觉让我觉得它几乎听起来像select(2)和epoll.

所以,我的问题是,如果我使用libuv(通过节点)是内部我使用select(2)或epoll.

libuv是unix中的select(2)和epoll系统调用的包装吗?

sag*_*hul 6

libuv使用每一个平台最高效的轮询机制:这意味着在Linux上的epoll,kqueue的在MacOS和BSD系统为/ dev /在SunOS调查,等一个有趣的把戏libuv所做的就是使用select()关于一些FDS kqueue的线程无法处理.我在这里给出了一些细节:http://code.saghul.net/index.php/2016/05/24/libuv-internals-the-osx-select2-trick/