Creo un ThreadPool
con 10 hilos fijos en él. A veces tengo que interrumpir un hilo longrunning en el grupo de subprocesos, sobre todo porque están bloqueando en alguna operación y se produce un tiempo de espera e interrumpo el hilo. Cojo el InterruptedException
y configuro el estado del Thread para interrumpirlo también. En ese caso, mi pregunta es, ¿ThreadPool
crea un nuevo hilo y reemplaza el hilo interrumpido por uno nuevo? A continuación se muestra el código de ejemplo que se ejecuta con el subproceso. La pregunta es, cuando este hilo se interrumpe, ¿el grupo de hilos reemplaza este hilo por uno nuevo?cómo el ejecutor del conjunto de Java thead trata con el hilo interrumpido
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;
}
qué tipo de subprocesos está usando? – dash1e
Usted sabe que 'get()' tiene una sobrecarga que acepta un tiempo de espera, ¿verdad? – erickson
¿Qué hace 'StopWatch'? – erickson