可能重复:
如何立即终止套接字 IO 操作上的线程阻塞?
我有客户端在线程中运行,想要从 Java 中的套接字读取。但是在阅读时,也许我想杀死线程。所以我interrupt
是这样,但是套接字的读取方法会抛出InterruptedException
吗?我没找到。
那么,我怎样才能很好地要求线程在读取套接字时阻塞?
谢谢
可能重复:
如何立即终止套接字 IO 操作上的线程阻塞?
我有客户端在线程中运行,想要从 Java 中的套接字读取。但是在阅读时,也许我想杀死线程。所以我interrupt
是这样,但是套接字的读取方法会抛出InterruptedException
吗?我没找到。
那么,我怎样才能很好地要求线程在读取套接字时阻塞?
谢谢
NIO 通道具有InterruptableChannel,它们将在阻塞操作时被中断。您可以将 NIO 与阻塞操作一起使用,因此它们的工作方式与 Java IO 大致相同,即您不必重新开发应用程序即可使用 Selectors/Dispatchers 等。
基本上,当您close()
使用套接字时,所有关联的流都将关闭,从而使所有阻塞的操作都被解除阻塞。
或者你可以调用Thread.interrupt()
它,它会中断阻塞操作,导致它抛出InterruptedException
.