OS X不支持epoll功能吗?

时间:2012-12-13 09:08:57

标签: macos epoll kqueue

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

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

2 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分: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