11

我正在学习使用 epoll 功能。但是我的 OS X,Mountain Lion 没有头文件 sys/epoll.h。

我想在 OS X 上使用 epoll 功能。如何使用 epoll 功能?

4

2 回答 2

23

Mac OS X 不支持 epoll,但确实支持非常相似的kqueue 。

于 2012-12-13T10:10:26.757 回答
0

在 Mac OSX 上使用 kqueue 而不是 epoll。在你的java代码中做这样的事情。

 final boolean isMac = 

  System.getProperty("os.name").toLowerCase(Locale.US).contains("mac");

    // Configure the server.
    // See https://netty.io/wiki/native-transports.html
    EventLoopGroup bossGroup;
    EventLoopGroup workerGroup;

    if (isMac) {
        bossGroup = new io.netty.channel.kqueue.KQueueEventLoopGroup();
        workerGroup = new io.netty.channel.kqueue.KQueueEventLoopGroup(5);
    } else {
        bossGroup =  new io.netty.channel.epoll.EpollEventLoopGroup();
        workerGroup = new io.netty.channel.epoll.EpollEventLoopGroup(5);
    }

确保您在 pom.xml 上添加了 io.netty

于 2018-11-01T09:55:02.890 回答