我在其中创建了ThreadPool
10 个固定线程。有时我需要中断线程池中一个长时间运行的线程,主要是因为它们在某些操作中阻塞并且发生超时并且我中断了线程。我抓住InterruptedException
并将线程的状态设置为中断。在这种情况下,我的问题是,是否ThreadPool
创建一个新的线程并用新的 One 替换中断的线程?下面是由线程执行的示例代码。问题是,当这个线程被中断时,线程池会用一个新线程替换这个线程吗?
public ResponseMessage call(){
Future<ResponseMessage> future = CacheManager.getInstance().asyncFetch();
ResponseMessage response = null;
try {
response = future.get();
}
catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (ExecutionException ex) {
//create a blank response
}
return response;
}