Reporte de Grafos programacion concurrente y paralela
Enviado por Andreeriveroll • 28 de Agosto de 2023 • Documentos de Investigación • 3.850 Palabras (16 Páginas) • 49 Visitas
26-8-23
REPORTE
[pic 1]
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación[pic 2] | [pic 3] |
[pic 4][pic 5] | [pic 6] [pic 7][pic 8] |
[pic 9] | Materia: Programación Concurrente y Paralela Profesor: Carmen Cerón Garnica |
Alumnos: Israel Rivera Estrella 201804041 Alejandro Ponce Bonilla 201835041 Aldo Andree Riverol Alcala 201866110 Juan Pablo Romero Diaz 20180167
|
Contenido
Introducción 3
Desarrollo 3
Problema 1. 3
Versión Herencia de Thread 3
Versión de Runnable 4
Problema 2. 6
Versión Herencia de Thread 6
Versión de Runnable 7
Problema 3. 9
Problemas 12
Problema 1. 12
Versión Herencia de Thread 13
Versión de Runnable 14
Problema 2. 16
Versión Herencia de Thread 16
Versión de Runnable 18
Conclusión 19
Introducción
En la presente practica se reafirmarán los conceptos de creación de hilos, además de hacer que los hilos trabajen de forma sincronizada y comunicadas de forma alternada, para representar diferentes grafos.
Desarrollo
Problema 1.
Construir un programa concurrente que se corresponda con el grafo de precedencia de la siguiente figura utilizando Java.
Versión Herencia de Thread
package grafo_1;[pic 10]
public class Grafo_1 extends Thread {
String palabra;
int tiempo;
public Grafo_1(String _palabra, int _tiempo){ palabra = _palabra;
tiempo = _tiempo;
}
public void run() {
try{
sleep(tiempo); System.out.println(palabra);
}
catch (InterruptedException e) { System.err.println("Error");
}
}
public static void main(String[] args) {
Thread s1 = new Grafo_1 ("S1",500); Thread s2 = new Grafo_1 ("S2",1000);
Thread s3 = new Grafo_1 ("S3",1000); Thread s4 = new Grafo_1 ("S4",2000); Thread s5 = new Grafo_1 ("S5",2500); Thread s6 = new Grafo_1 ("S6",2500); Thread s7 = new Grafo_1 ("S7",3000); s1.start();
s2.start();
s3.start();
s4.start();
s5.start();
s6.start();
s7.start();
System.out.println("Ejecucion Main Grafo ");
}
}
[pic 11]
Versión de Runnable
import static java.lang.Thread.sleep;
public class Grafo_1_Runnable implements Runnable {
String palabra;
int tiempo;
public Grafo_1_Runnable(String _palabra, int _tiempo){
palabra = _palabra;
tiempo = _tiempo;
}
public void run() {
try{
sleep(tiempo); System.out.println(palabra);
}
catch (InterruptedException e) {
System.err.println("Error");
}
}
public static void main(String[] args) {
Grafo_1_Runnable a1 = new Grafo_1_Runnable ("S1",500);
Grafo_1_Runnable a2 = new Grafo_1_Runnable ("S2",1000);
Grafo_1_Runnable a3 = new Grafo_1_Runnable ("S3",1000);
Grafo_1_Runnable a4 = new Grafo_1_Runnable ("S4",2000);
Grafo_1_Runnable a5 = new Grafo_1_Runnable ("S5",2500);
Grafo_1_Runnable a6 = new Grafo_1_Runnable ("S6",2500);
Grafo_1_Runnable a7 = new Grafo_1_Runnable ("S7",3000);
Thread t1 = new Thread (a1);
Thread t2 = new Thread (a2);
Thread t3 = new Thread (a3);
Thread t4 = new Thread (a4);
Thread t5 = new Thread (a5);
Thread t6 = new Thread (a6);
Thread t7 = new Thread (a7);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
t7.start();
System.out.println("Ejecucion Main Grafo ");
}
}
[pic 12]
Problema 2.
Dado el siguiente grafo de precedencia correspondiente obtener su tabla con la que se dibujó.
Versión Herencia de Thread[pic 13]
package grafo_2;
public class Grafo_2 extends Thread{
String palabra;
int tiempo;
public Grafo_2(String _palabra, int _tiempo){
palabra = _palabra;
tiempo = _tiempo;
}
public void run() {
try{
sleep(tiempo);
...