Este documento presenta un informe técnico sobre hilos (threads) en Java. Describe la creación de clases para tres jugadores que se mueven en una tabla utilizando hilos. Cada jugador está representado por su propia clase que extiende la clase Thread, permitiendo que se muevan de forma concurrente. El formulario principal contiene tablas que muestran la posición de cada jugador y métodos para moverlos invocando los métodos de sus clases de hilo respectivas. El uso de hilos hace que el sistema interactúe con el usuario de forma simultá
PRIMARIA 1. RESUELVE PROBLEMAS DE FORMA MOVIMIENTO Y LOCALIZACIÓN 2 (2).pptx
Unidad 4 isc j3 programacion concurrente CB
1. 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
2. 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();
public void FormaHilos()
3. {}
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 constatarcon estos métodosque 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.
4.
5. 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
formHilo.moverJugador1(avance); //invoca al método moverJugador1 que se
//encuentra en el formulario FormaHilos
6. 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 podemosdestacar 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.
7. Conclusión Rene Jesús Sosa Arana
Por ende la programación concurrent e es que una comput adora parezca
que ejecut a muchas t areas al mismo t iempo, cuando la verdad es que va
t urnando la labor del procesador a t odas las t areas, de una manera tan
rápidaque t upiensas que cont inuamentese hacen t odaslas t areasala vez,
est e t ipo de programación puede lograrse gracias a los mult ihilos lo cuales
son programas que se ejecut an “simult áneament e”.
Conclusión Ángel Martin Pat Oribe
Puedo concluir que aunque en el ejemplo propuest o en el libro es un poco
complicado de ent ender al principio, se t iene que t ener en especial
at ención a la clase Thread y al mét odo Sleep() que en pocas palabras lo
que hace es empezar un hilo nuevo y decirle en cuant o t iempo apagarse
(dejar de ejecut arse), al principio no t iene mucho uso en el mundo real pero
en el mundo de las redes o incluso en los foros donde mucha gent eal mismo
t iempo ejecut an una misma acción es muy út il.
Conclusión Erwin Alexander Villegas Tun
El uso de t hread es una manera para que el sist ema tenga una función en
especifica (ejecut arse o det enerse), ya que al momento de implementa el
uso de los hilas hacen que el sist ema interactúe con el usuario mediante las
pet iciones que él requiera, ya sea que desea que un mét odo se ejecut e por
un ciert o tiempo o se det enga por un periodo prolongado. Est o hace que el
usuario t engamáscont rol al momento de est ar t rabajando con el uso de los
mét odos. Trabajar con las funciones de los hilos es de mucha importancia si
se desea realizar tareas por ciert os tiempos determinados o que se ejecuten
operaciones simult áneament e o secuencialment e.
Conclusión Jhonatan Candido Pat Chan
Al escuchar la palabra multi-hilo, tal vez lo primero que t e viene a la mente
son muchos "hilos" de los que conocemos normalmente en casa, pero al
hablaren t érminosde programación, no nos est amosrefiriendoaesos "hilos".
En programación, nos est amos refiriendo a los lenguajes de programación
que permitenlaejecución de varias t areasen formasimultánea. Un ejemplo
de ello sería usar una clase llamada Thead.
8. Conclusión Rubí Verónica Chimal Cuxin
La programación concurrent e es una gran ut ilidad ya que -Un programa
multihilo cont iene dos o más part es que pueden ejecut arse de forma
concurrent e. Cada part e de ese programa se llama hilo y cada hilo
est ablece un camino de ejecución independiente. Es un t ipo de mult itarea
dist inta a la multitarea por procesos, la cual ejecut a varios programas a la
vez. Para java es un solo programa con varios hilos a la vez”.