如何在Java中使用epoll?

如何在Java中使用epoll?,java,multithreading,embedded-linux,gpio,epoll,Java,Multithreading,Embedded Linux,Gpio,Epoll,我看到这个问题是这样的: 我进行了一些研究,试图找出如何创建一些东西,使用nio选择器和通道监视文件描述符中的更改,但我没有取得任何进展。AsynchronousFileChannel未实现SelectableChannel。我不能使用FileWatcher,因为我关心的文件描述符GPIO引脚。我需要在这里创建什么样的频道?如何创建 编辑: 我知道pi4j和Libbulldog,它们使用本机模块来实现gpio访问。pi4j不适用于BeagleBone,Libbulldog是一个死项目。我希望得

我看到这个问题是这样的:

我进行了一些研究,试图找出如何创建一些东西,使用nio选择器和通道监视文件描述符中的更改,但我没有取得任何进展。AsynchronousFileChannel未实现SelectableChannel。我不能使用FileWatcher,因为我关心的文件描述符GPIO引脚。我需要在这里创建什么样的频道?如何创建

编辑:


我知道pi4j和Libbulldog,它们使用本机模块来实现gpio访问。pi4j不适用于BeagleBone,Libbulldog是一个死项目。我希望得到一个纯Java的答案。如果不是为了这类事情,为什么要在
SelectorProvider
中实现
epoll
。你不需要epoll(),你需要一种读取GPIO引脚的方法。我已经可以读取GPIO引脚,但是如果我连接了传感器,例如光传感器,我需要随着传感器值的变化获得高速更新。FileWatcher不工作,GPIO使用文件描述符,但都在内存中,它们不是文件。这不是阅读,而是投票。Linux内核为此提供了epollapi。我在读取GPIO引脚时遇到的非java版本使用epoll。我很确定javame也使用epoll,但我不能使用javame。它不是开源的。@Banthar pi4j用它来做这件事。我希望有一个纯Java的答案。如果不可能,为什么SelectorProvider会使用
epoll
?我用的是BeagleBone,所以我不能用pi4j。@Bjorn这里有什么进展吗?我有一个几乎相同的问题,使用纯java读取上升沿上的4个不同GPIO引脚。在这种情况下也使用beaglebone。希望使用选择器。抱歉迟到了5年…你有没有尝试过类似于或?XY的问题。你不需要epoll(),你需要一种读取GPIO引脚的方法。我已经可以读取GPIO引脚,但是如果我连接了传感器,例如光传感器,我需要随着传感器值的变化获得高速更新。FileWatcher不工作,GPIO使用文件描述符,但都在内存中,它们不是文件。这不是阅读,而是投票。Linux内核为此提供了epollapi。我在读取GPIO引脚时遇到的非java版本使用epoll。我很确定javame也使用epoll,但我不能使用javame。它不是开源的。@Banthar pi4j用它来做这件事。我希望有一个纯Java的答案。如果不可能,为什么SelectorProvider会使用
epoll
?我用的是BeagleBone,所以我不能用pi4j。@Bjorn这里有什么进展吗?我有一个几乎相同的问题,使用纯java读取上升沿上的4个不同GPIO引脚。在这种情况下也使用beaglebone。希望使用选择器。抱歉迟到了5年。。。