如何定义自己的SelectableChannel?

Gil*_*ili 6 java nio

我如何定义新类型java.nio.channels.SelectableChannel(比如串口)?

Nuo*_*oji 1

我的理解是java实现是基于unix select()c函数的(我好像记得Windows实现略有不同)

根据操作系统(和 JVM 参数!),会调用不同的本机操作系统函数,但它们的共同点是它是本机代码 - 基本功能不是用 Java 实现的。

如果你想创建一个访问select()底层操作系统(或类似的)的库(它确实依赖于文件句柄),我认为你几乎被迫使用 JNI。我不相信有任何方法可以解决它。

Java 中的 Selector/SelectableChannel 实际上是一个功能贫乏的子集select()