当前是抓住插座输入流并转换为可中断数据的策略:
InputStream
使用A
InputStream interruptibleInputStream = Channels.newInputStream(Channels.newChannel(m_ConnectionData.getSocket().getInputStream()));
DataInputStream myInterruptibleDIS = new DataInputStream(interruptibleInputStream);
提供了一种支持throwable的方法。问题是在线程上调用中断,在the上呼叫
ReadableByteChannel
在
read(ByteBuffer)
上呼叫会导致下面的插座关闭。对于我的上下文,我需要插座才能保持打开状态;
ClosedByInterruptException
呼叫正在等待未来的用户输入,因此我使用中断将控件传递回更高的组件,然后最终再次返回read()
DataInputStream
。
如果有人可以建议使用JDK Instruilt课程提出一种方法,或者指出某些信息是不可能的。
我知道还有其他方法可以实现相同的效果,但是仍然很好奇知道这种方法是否可行。
如果您每次超时触发器中断线程的状态。更好的是,请查看中断线程的要求。那是为了什么?