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

时间:2016-06-30 17:49:58

标签: node.js unix epoll select2 libuv

我一直在阅读nodejs如何使用libuv来执行异步I / O.阅读更多关于它的信息让我感觉它几乎与select(2)和epoll类似。

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

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

1 个答案:

答案 0 :(得分:6)

libuv为每个平台使用最高性能的轮询机制:这意味着Linux上的epoll,macOS和BSD上的kqueue,SunOS上的/ dev / poll等。一个有趣的技巧libuv做的是它在线程上使用select()一些fds kqueue无法处理。我在这里提供了一些细节:http://code.saghul.net/index.php/2016/05/24/libuv-internals-the-osx-select2-trick/