Programas De Hilos
Enviado por streamer • 3 de Mayo de 2015 • 863 Palabras (4 Páginas) • 265 Visitas
Fundamento teórico
A veces necesitamos que nuestro programa realice varias cosas simultáneamente. Para conseguir que haga varias cosas a la vez o que el programa no se quede parado mientras realiza una tarea compleja, tenemos los hilos (Threads), lo cual podemos ejecutar para realizar diferentes tareas al mismo tiempo y así poder ahorrar tiempo, por lo tanto los hilos nos ayudan a terminar una tarea más pronto.
Hoy en día los sistemas operativos son multi-tarea lo cual facilita al usuario poder realizar varias actividades al mismo tiempo, ya que los ordenadores de antes solo eran mono-tarea eso quiere decir que el usuario solo podía realizar una tarea y para poder realizar otra tenía que acabar la primer tarea que estaba realizando.
Desarrollo
/*Clase donde tiene el main*/
public class ProducerConsumer{
public static void main(String[] args) {
/*Se crea un objeto dela clase sincronizar para colocar como parámetro a los hilos y así ellos poder acceder a los recursos que tiene la clase*/
Sincronizar s = new Sincronizar();
/*Se crean los hilos del productor y consumidor los cuales cada hilo de productor representara la suma de un renglón del array y el consumidor tendrá la acción de imprimir en un arreglo la suma de los renglones a los hilos de tienen la función de producir se les coloca un número como nombre y para poder utilizar ese número como el renglón que le toca en el array*/
Producer p1 = new Producer(s, 0);
Producer p2 = new Producer(s, 1);
Producer p3 = new Producer(s, 2);
Producer p4 = new Producer(s, 3);
Producer p5 = new Producer(s, 4);
Consumer c1 = new Consumer(s);
/*El método start() manda a llamar el método run() para que el hilo pueda hacer su función programada*/
p1.start();
p2.start();
p3.start();
p4.start();
p5.start();
c1.start();
}
}
/*Clase de productor*/
public class Producer extends Thread{
/*Se declaran las variables y el arreglo ya llenado*/
int matriz[][]={ {5,10,15,20,25}, {6,12,18,24,30},
{7,14,21,28,35}, {8,16,24,32,40},
{9,18,27,36,45}};
int i, j, suma;
Sincronizar sincro;
/*En el método constructor se reciben los parámetros como son la el objeto de la clase sincronizar y un número para identificar cual productor es y al mismo tiempo ese número tomarlo como el renglón para poder realizar su suma*/
public Producer(Sincronizar c, int renglon){
sincro = c;
this.i = renglon;
j=0;
}
/*En el método run es donde se programa lo que queramos que el hilo realice en este programa el
...