我正在学习使用epoll功能。 但我的OS X,Mountain Lion没有头文件sys / epoll.h。
我想在OS X上使用epoll功能。我如何使用epoll功能?
答案 0 :(得分:21)
Mac OS X不支持epoll,但支持kqueue非常相似。
答案 1 :(得分:0)
使用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