[código] Ejemplo simple de Subprocesamiento múltiple en Java
En esta entrada veremos un ejemplo muy sencillo en Java en donde usamos el subprocesamiento múltiple (programación multihilo, o concurrente, o como le quieran llamar). En el ejemplo se usa la clase Thread para dormir un subproceso (usando el método sleep), y se muestran otras caracterÃsticas relevantes cuando se programan hilos.
Varios subprocesos imprimiendo en distintos intervalos
public class ProbadorSubprocesos {
public static void main( String [] args )
{
// crear y nombrar a cada subproceso
ImprimirSubproceso subproceso1 = new ImprimirSubproceso( "subproceso1" );
ImprimirSubproceso subproceso2 = new ImprimirSubproceso( "subproceso2" );
ImprimirSubproceso subproceso3 = new ImprimirSubproceso( "subproceso3" );
System.err.println( "Iniciando subprocesos" );
subproceso1.start(); // iniciar subproceso1 y colocarlo en estado listo
subproceso2.start(); // iniciar subproceso2 y colocarlo en estado listo
subproceso3.start(); // iniciar subproceso3 y colocarlo en estado listo
System.err.println( "Subprocesos iniciados, termina main\n" );
} // fin de main
} // fin de la clase ProbadorSubprocesos
// la clase ImprimirSubproceso controla la ejecución de los subprocesos
class ImprimirSubproceso extends Thread {
private int tiempoInactividad;
// asignar nombre a subproceso, llamando al constructor de la superclase
public ImprimirSubproceso( String nombre )
{
super( nombre );
// elegir tiempo de inactividad aleatorio entre 0 y 5 segundos
tiempoInactividad = ( int ) ( Math.random() * 5001 );
}
// el método run es el código a ejecutar por el nuevo subproceso
public void run()
{
// colocar subproceso en inactividad durante el tiempo indicado por tiempoInactividad
try {
System.err.println(
getName() + " va a estar inactivo durante " + tiempoInactividad );
Thread.sleep( tiempoInactividad );
}
// si el subproceso se interrumpió durante su inactividad, imprimir rastreo de la pila
catch ( InterruptedException excepcion ) {
excepcion.printStackTrace();
}
// imprimir nombre del subproceso
System.err.println( getName() + " termino su inactividad" );
} // fin del método run
} // fin de la clase ImprimirSubproceso
#java ProbadorSubprocesos
Iniciando subprocesos
subproceso1 va a estar inactivo durante 1645
subproceso2 va a estar inactivo durante 2381
Subprocesos iniciados, termina main
subproceso3 va a estar inactivo durante 2398
subproceso1 termino su inactividad
subproceso2 termino su inactividad
subproceso3 termino su inactividad









Jorge dice:
Julio 24th, 2008 a las 12:28 pm
Hola. Muy buena la información que hay aquÃ, es de gran ayuda. Ahora tengo una pregunta. Tengo una aplicación en la cual deseo que al escribir cierta palabra en un TextField, al seleccionar un item de un Choice y luego al presionar un botón “Generar” (es decir, sólo cuando ya presione el botón) se despliegue la información correspondiente a cada caso en un TextArea y un ImageIcon. Ahora lo hace cada uno por separado. Cómo lo hago? Espero recibir su ayuda y colaborar en caso de que alguien tenga un problema similar. Muchas gracias
Casidiablo dice:
Julio 24th, 2008 a las 12:48 pm
Hola Jorge…
Las dudas puedes plantearlas en:
https://foro.elhacker.net/java-b70.0/
Y por suspuesto se espera que pongas lo que llevas hecho y pidas ayuda de cosas muy puntuales.
Un saludo!