关于Java多线程IO阻塞如何中断的问题,基于一个基本条件,关闭任务发生阻塞的底层资源问题,可以中断该多线程任务。对于IO阻塞问题,给出了两个示例,一个是Socket IO,关闭掉Socket IO之后确实可以中断;另一种是System.in ,这种情况下关闭System.in,仍然不能使线程任务发生中断。测试代码如下(这种情况下,只能使用nio才可以):
/**
* Created by Song on 2016/10/18.
*/
public class ThreadInterruptTest {
public static void main(String [] args) throws Exception{
ExecutorService es = Executors.newCachedThreadPool();
//ServerSocket ss = new ServerSocket(8080);
//InputStream in = new Socket("localhost",8080).getInputStream();
InputStream