【发布时间】:2012-04-16 07:03:01
【问题描述】:
假设我开始了一个线程并且我有这样的事情:
...//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 对象
我知道你可以从另一个线程关闭套接字来中断这个线程。但是当我尝试使用 future.cancel(true) 方法时,即使它返回 true,线程似乎仍在运行,有人知道为什么吗?还是 in.readLine() 不能这样中断?
【问题讨论】:
标签: java multithreading java.util.concurrent