Class TimedProcess


  • public class TimedProcess
    extends Object
    Proceso de sistema operativo con tiempo máximo de ejecución. Se ejecutan simultáneamente el proceso de sistema operativo y tres threads:
  • thread timeout: cancelará el proceso si transcurrido el tiempo máximo de ejecución, éste no ha finalizado
  • consumidor de salida estándar: lee la salida estándar del proceso y la almacena en memoria
  • consumidor de error estándra: lee el error estándar del proceso y lo almacena en memoria
  • proceso de sistema operativo: ejecuta el proceso indicado en el método exec (sincrónamente) o execNoWait (asíncronamente)
  • Los threads consumidores son opcionales en las llamadas asíncronas y automáticos en la llamada síncrona.
    Para realizar una llamada síncrona, la clase invocante ejecutará:

    Process p = new Process ( 10000 ); // 10 segundos de timpo límite
    try {
       int result = p.exec ("/usr/ucb/whoami"); // Proceso de sistema operativo
    } catch (TimedOutExceptin e) {
        ...
    }


    Para realizar una llamada asíncrona, la clase invocante ejecutará:

    Process p = new Process ( 10000 ); // 10 segundos de timpo límite
    try {
       int result = p.execNoWait ("/usr/ucb/whoami"); // Proceso de sistema operativo
       p.consumeOutput (); // (opcionalmente) se instanciará el thread consumidor de la salida estándar
       p.consumeError (); // (opcionalmente) se instanciará el thread consumidor del error estándar
       p.getInputStream (); // (opcionalmente) se usará la entrada estándar
       ...
    p.join (); // Esperar a la finalización ( o timeout ) del proceso
    } catch (TimedOutExceptin e) {
       ...
    }
Version:
$Revision: 1.1.2.2 $
Author:
$Author: u07286 $