gpt4 book ai didi

java - Java中是否有等效的epoll?

转载 作者:IT老高 更新时间:2023-10-28 20:52:49 25 4
gpt4 key购买 nike

Java 中是否有相当于 Linux epoll 的功能?

epoll 允许线程对多个异构事件使用react。例如,我可以有一个线程对套接字事件或来自控制台的输入使用react。在 C++ 中,我可以通过使用 epoll 注册 stdio 和套接字来实现这一点。我的线程将由来自任何一个的事件触发。

Java 中有类似的工具吗?我查看了 nio 包,它允许我使用选择器注册多个套接字。但是似乎没有办法用选择器注册控制台/标准 io。我没有看到什么吗?有没有其他方法可以做到这一点?

关于“为什么”:我想编写一个通过套接字进行通信的程序,并且我想通过从控制台输入命令来驱动这个程序。我知道如何通过分离控制台输入和与不同线程的通信来做到这一点,但我很好奇是否有办法在单个线程中做到这一点。

谢谢。df

最佳答案

Java SE 6 中的增强功能

java.nio

包含一个基于 Linux epoll 事件通知工具的新 java.nio.channels.SelectorProvider 实现。 epoll 工具在 Linux 2.6 和更新的内核中可用。当有数千个 SelectableChannel 注册到一个 Selector 时,新的基于 epoll 的 SelectorProvider 实现比传统的基于 poll 的 SelectorProvider 实现更具可扩展性。当检测到 2.6 内核时,将默认使用新的 SelectorProvider 实现。当检测到 2.6 之前的内核时,将使用基于轮询的 SelectorProvider。

https://docs.oracle.com/javase/8/docs/technotes/guides/io/enhancements.html

关于java - Java中是否有等效的epoll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10621783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com