我需要编写一个执行阻塞I / O操作的JNI接口而且我需要这些方法可以被中断。例如:
interface IO {
native void waitForEvents() throws InterruptedException, IOException;
native int readBytes(byte[] data, int offset, int len) throws InterruptedException, IOException;
}
在Win32上,我使用windows API'waitForSingleObject(HADLE)'来实现“waitForEvents”,并使用'read(HANDLE)'来实现'readBytes'。
如何中断阻塞函数'waitForSingleObject'和'read'?
答案 0 :(得分:0)
看起来你需要查看java.nio
通道类来学习如何进行非阻塞Java IO,而不是纠结于JNI。
答案 1 :(得分:0)
要取消阻止调用,您可能希望另一个线程发信号通知原始线程阻塞的句柄。也许为此目的创建另一个JNI呼叫。