假设我开始了一个线程,并且有如下内容:
...//initiate all the socket connection
future = executor.submit
( new Runnable()
{ public void run()
{ ...
...
while ((str = in.readLine()) != null)
{ //do something here
}
}
);
executor是一个ExecutorService对象,in是一个BufferedReader对象。
我知道你可以从不同的线程关闭socket来中断这个线程。但是当我尝试使用future.cancel(true)方法时,即使它返回true,该线程似乎仍在运行,有人知道为什么吗?或者说in.readLine()不能通过这种方式中断吗?