我有一个线程,在其中循环调用
如果我从另一个线程调用
如何解除
编辑:
显然,常规JRE会立即抛出
对于Android环境的解决方案提示将不胜感激。
InputStream
的read()
方法。当没有更多字节可读时,流会阻塞直到有新数据到达。如果我从另一个线程调用
InputStream
的close()
方法,则该流将关闭,但被阻塞的read()
调用仍然保持阻塞状态。我原以为read()
方法现在应该返回值-1
来表示流的结束,但它没有这样做。相反,它会一直阻塞几分钟,直到发生tcp超时。如何解除
close()
调用的阻塞?编辑:
显然,常规JRE会立即抛出
SocketException
,当与阻塞的read()
调用对应的流或套接字被close()
时。但我使用的Android Java运行时不会抛出此异常。对于Android环境的解决方案提示将不胜感激。