예제 #1
0
  /** @see net.gaia.taskprocessor.api.processor.Detenible#detener() */
  public void detener() {
    detenido = true;
    // Primero cambiamos el estado de los workers para que terminen
    for (final ParallelWorker internalWorker : internalWorkers) {
      internalWorker.stopRunning();
    }
    // Eliminamos las referencias para el GC
    internalWorkers.clear();

    // Interrumpimos los threads para que no esperen más y terminen inmediatamente
    for (final Thread internalThread : internalThreads) {
      internalThread.interrupt();
    }
    // Eliminamos las referencias para el GC
    internalThreads.clear();

    // Cada thread cancela sus propias tareas pendientes
  }