11

epoll関数の使い方を学んでいます。しかし、私のOSXであるMountainLionには、ヘッダーファイル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では、epollの代わりにkqueueを使用します。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 に答える