8
是否可以从InputStream读取超时?
具体来说,问题是编写这样的方法: int maybeRead(InputStream in, long timeout) 如果数据在“超时”毫秒内可用,则返回值与in.read()相同,否则为-2。在方法返回之前,所有产生的线程必须退出。 为避免自变量,此处的主题为java.io.InputStream,由Sun(任何Java版本)记录。请注意,这并不像看起来那么简单。以下是Sun文档直接支持的一些事实。 in.read()方法可能是不可中断的。 将InputStream包装在Reader或InterruptibleChannel中没有帮助,因为所有这些类都可以做的是InputStream的调用方法。如果可以使用这些类,则可以编写一个直接在InputStream上执行相同逻辑的解决方案。 in.available()返回0始终是可接受的。 in.close()方法可能会阻止或不执行任何操作。 没有杀死另一线程的一般方法。
147
java
timeout
inputstream