在Java中有相当于Linux epoll吗?
epoll允许线程对许多异质事件做出反应.例如,我可以有一个线程来响应来自控制台的套接字事件或输入.在C中,我可以通过使用epoll注册stdio和套接字来实现.我的线程将由一个事件触发,如果这些事件.
在Java中有类似的工具吗?我看着nio包,它允许我用一个选择器注册一些套接字.但是,似乎没有办法使用选择器注册控制台/标准io.我没看到什么吗?有另一种方法吗?
在“为什么”:我想编写一个通过套接字进行通信的程序,我想通过从控制台输入命令来驱动这个程序.我知道如何通过将控制台输入和通信分离到不同的线程来实现,但我很好奇是否有一种方法可以在单个线程中执行此操作.
谢谢.
DF
Java SE 6中的增强功能
java.nio中
包含基于Linux epoll事件通知工具的新的java.nio.channels.SelectorProvider实现. epoll工具可用于Linux 2.6和更新的内核.当在Selector上注册了数千个SelectableChannels时,新的基于epoll的SelectorProvider实现比传统的基于poll的SelectorProvider实现更具可扩展性.当检测到2.6内核时,默认情况下将使用新的SelectorProvider实现.当检测到2.6之前的内核时,将使用基于投票的SelectorProvider.
http://download.java.net/jdk8/docs/technotes/guides/io/enhancements.html
代码日志版权声明:
翻译自:http://stackoverflow.com/questions/10621783/is-there-epoll-equivalent-in-java