Terminación insegura de hilos a cancelación cooperativa
Sustituye Thread.stop() y las banderas compartidas improvisadas por una cancelación de tareas consciente de la interrupción.
Thread worker = new Thread(this::runTask); worker.start(); // May stop the thread while shared state is inconsistent. worker.stop();
Future<?> worker = executor.submit(this::runTask); // Requests interruption; the task must cooperate. worker.cancel(true);
Preserva invariantes
Las tareas se detienen solo en rutas de código diseñadas para la cancelación.
Control estándar
Future representa la ejecución, la finalización y la cancelación en conjunto.
Componible
La interrupción funciona con colas bloqueantes, locks, executors e hilos virtuales.
Future y ExecutorService están disponibles desde JDK 5 (sept. 2004).
Thread.stop() puede terminar el código mientras posee monitores o está actualizando estado compartido, dejando los objetos dañados. La cancelación moderna es cooperativa. Cancela el Future con interrupción, propaga InterruptedException cuando sea posible, restaura el estado de interrupción cuando no se puede propagar, y diseña la tarea para que alcance puntos seguros de cancelación.