Unidad 4 isc j3 programacion concurrente CB

9
INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO PUERTO. INFORME TECNICO UNIDAD 4: HILOS (THREADS) TOPICOS AVANZADOS DE PROGRAMACION INFORME TECNICO. INTEGRANTES DEL EQUIPO Ángel Martin Pat Oribe Rene Jesús Sosa Arana Erwin Alexander Villegas Tun Ruby Verónica Chimal Cuxin Jhonatan Cándido Pat Chan

Transcript of Unidad 4 isc j3 programacion concurrente CB

Page 1: Unidad 4 isc j3 programacion concurrente CB

INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO PUERTO.

INFORME TECNICO UNIDAD 4: HILOS (THREADS)

TOPICOS AVANZADOS DE PROGRAMACION

INFORME TECNICO.

INTEGRANTES DEL EQUIPO

Ángel Martin Pat Oribe

Rene Jesús Sosa Arana

Erwin Alexander Villegas Tun

Ruby Verónica Chimal Cuxin

Jhonatan Cándido Pat Chan

Felipe Carillo Puerto Quintana Roo a 28 de Junio del 2015

Page 2: Unidad 4 isc j3 programacion concurrente CB

Proyecto dskHilos

Form (FormaHilos).

public class FormaHilos extends javax.swing.JFrame

{

javax.swing.table.DefaultTableModel modeloTabla = new javax.swing.table.DefaultTableModel();

javax.swing.table.DefaultTableModel modTablaJugador1 = new javax.swing.table.DefaultTableModel();

javax.swing.table.DefaultTableModel modTablaJugador2 = new javax.swing.table.DefaultTableModel();

javax.swing.table.DefaultTableModel modTablaJugador3 = new javax.swing.table.DefaultTableModel();

//Se crea un archivo de tipo “Objeto”

Object[] filas = new Object[24];

Object[] datosJugador1 = new Object[3]; //columnas celdaAvance,

Object[] datosJugador2 = new Object[3];

Object[] datosJugador3 = new Object[3];

public Boolean seguir = true;

int celdaJugador1=0;

int celdaJugador2=0;

int celdaJugador3=0;

int p=0;int q=0; int m=0;

//Se instancias las clases que estan en otro paquete (Logica)

clsJugador1 jug1 = new clsJugador1();

clsJugador2 jug2 = new clsJugador2();

clsJugador3 jug3 = new clsJugador3();

Page 3: Unidad 4 isc j3 programacion concurrente CB

public void FormaHilos()

{}

Public void cargarDetalle()

{}

Public void cargarTabla()

{}

Private void cargarTabla()

{}

Public void limpiarTabla()

{}

Void confTablaJugadores()

{}

Public void moverJugador1(int celda)

{}

Public void moverJugador2(int celda)

{}

Public void moverJugador3(int celda)

{}

//------------------------------------------------------------------------------------------------//

Podemos constatar con estos métodos que se crearon asignamos valores y más que nada los estilos de cada ventana, fuente, alineación, etc.

Y aquí podemos ver como se ve la tabla.

Page 4: Unidad 4 isc j3 programacion concurrente CB
Page 5: Unidad 4 isc j3 programacion concurrente CB

Siguiente se crea las clases de cada jugado con el nombre: clsJugador1, clsJugador2, clsJugador3, el código de una clase es el siguiente:

public class clsJugador1 extends Thread{

private int numero;

private String nombre;

private boolean continuar = true;

//Constructor

public clsJugador1()

{

numero = 1; //le asigna el numero 1 al jugador 1.

nombre = JOptionPane.showInputDialog(null,"Digite el nombre del Jugador 1: ");

}

public int getNumero(){return numero;} //para devolver el numero del jugador

public String getNombre(){return nombre;}

public Fisica.FormaHilos formHilo; //declara una variable de tipo FormaHilos

public clsJugador1(Fisica.FormaHilos aThis) { //constructor que recibe por

formHilo = aThis; //defecto el formulario FormaHilos y lo asigna a formHilo.

}

public void detenerHilo()

{ //método para detener la ejecución del hilo.

continuar = false;

}

@Override //se sobrescribe el método run

@SuppressWarnings("SleepWhileInLoop")

public void run()

{

while (continuar) { //hágase mientras continuar sea verdadero

try {

int avance = (int) (Math.random() * 4); //establece el avance de jugador 1

Page 6: Unidad 4 isc j3 programacion concurrente CB

formHilo.moverJugador1(avance); //invoca al método moverJugador1 que se

//encuentra en el formulario FormaHilos

continuar = formHilo.seguir; //para validar si se debe continuar.

Thread.sleep(150); //descansa por 15 segundos...

} catch (InterruptedException ex) {

System.out.checkError();

}

}

}

}

En esta clase de Jugador 1 podemos destacar varias cosas:

La clase Thread y el método Sleep() ambos muy importantes en la ejecución de los threads. Y aquí una captura del juego en ejecución.

Page 7: Unidad 4 isc j3 programacion concurrente CB

Conclusión Rene Jesús Sosa Arana

Por ende la programación concurrente es que una computadora parezca que ejecuta muchas tareas al mismo tiempo, cuando la verdad es que va turnando la labor del procesador a todas las tareas, de una manera tan rápida que tu piensas que continuamente se hacen todas las tareas a la vez, este tipo de programación puede lograrse gracias a los multihilos lo cuales son programas que se ejecutan “simultáneamente”.

Conclusión Ángel Martin Pat OribePuedo concluir que aunque en el ejemplo propuesto en el libro es un poco complicado de entender al principio, se tiene que tener en especial atención a la clase Thread y al método Sleep() que en pocas palabras lo que hace es empezar un hilo nuevo y decirle en cuanto tiempo apagarse (dejar de ejecutarse), al principio no tiene mucho uso en el mundo real pero en el mundo de las redes o incluso en los foros donde mucha gente al mismo tiempo ejecutan una misma acción es muy útil.

Conclusión Erwin Alexander Villegas TunEl uso de thread es una manera para que el sistema tenga una función en especifica (ejecutarse o detenerse), ya que al momento de

Page 8: Unidad 4 isc j3 programacion concurrente CB

implementa el uso de los hilas hacen que el sistema interactúe con el usuario mediante las peticiones que él requiera, ya sea que desea que un método se ejecute por un cierto tiempo o se detenga por un periodo prolongado. Esto hace que el usuario tenga más control al momento de estar trabajando con el uso de los métodos. Trabajar con las funciones de los hilos es de mucha importancia si se desea realizar tareas por ciertos tiempos determinados o que se ejecuten operaciones simultáneamente o secuencialmente.

Conclusión Jhonatan Candido Pat ChanAl escuchar la palabra multi-hilo, tal vez lo primero que te viene a la mente son muchos "hilos" de los que conocemos normalmente en casa, pero al hablar en términos de programación, no nos estamos refiriendo a esos "hilos". En programación, nos estamos refiriendo a los lenguajes de programación que permiten la ejecución de varias tareas en forma simultánea. Un ejemplo de ello sería usar una clase llamada Thead.

Conclusión Rubí Verónica Chimal Cuxin La programación concurrente es una gran utilidad ya que -Un programa multihilo contiene dos o más partes que pueden ejecutarse de forma concurrente. Cada parte de ese programa se llama hilo y cada hilo establece un camino de ejecución independiente. Es un tipo de multitarea distinta a la multitarea por procesos, la cual ejecuta varios programas a la vez. Para java es un solo programa con varios hilos a la vez”.