难道OS X不支持epoll的功能?(Does OS X not support epoll fun

2019-08-04 01:01发布

我正在学习使用epoll的功能。 但我的OS X,山狮没有一个头文件,SYS / epoll.h。

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

Answer 1:

Mac OS X中不支持epoll的,但它支持kqueue的 ,这是非常相似的。



Answer 2:

在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);
    }

请确保您已经添加io.netty上的pom.xml



文章来源: Does OS X not support epoll function?