miércoles, 23 de noviembre de 2011

"HILOS O SUBPROCESOS" (PUNTOS EXTRAS)

Esta ocacion quiero hablar de como funcionan los hilos también llamados "subprocesos" en la creación de programas principalmente en juegos que son los problemas que mas se presentan en un sistema de este tipo.

Un hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrente-mente). Como bien se sabe o al menos por mis compañeros que hicieron su proyecto basado en algún juego para aplicar el suyo, los hilos se utilizan para procesos o programas que necesitan realizar varias tareas o ejecuciones de funciones simultáneamente, es decir, realizar varios procesos por separado al mismo tiempo, pero para un mismo fin, en este caso, al estar jugando un determinado juego deben estar pasando varias cosas a la vez para que se vea mas vistoso y tenga mayor grado de complejidad.

Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso.



Algunos de los principales estados de los hilos son ejecucion, listo y bloqueado que se mencionara y definiran acontinuacion.

Cambio de estados

  • Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instrucción y los argumentos del nuevo hilo. El hilo tendrá su propio contexto y su propio espacio de la columna, y pasará al final de los Listos.
  • Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podrá pasar a ejecutar otro hilo que esté en la final de los Listos mientras el anterior permanece bloqueado.
  • Desbloqueo: Cuando el suceso por el que el hilo se bloqueó se produce, el mismo pasa a la final de los Listos.
  • Terminación: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas.

Construir hilos dentro de algún programa lógicamente tiene sus ventajas, como podrían ser que el código o el proceso no tenga algunos problemas de compilación o de procesamiento al momento de ejecutar nuestro código 

Cabe mencionar que para implementar los hilos o procesos de las funciones del codigo de dicho programa se tiene que implementar. Un ejemplo de implementar un metodo para el proceso de un hilo seria por ejemplo de esta manera:

primeramente se declara la clase:

public class AplicHilo {

y el metodo seria:

public void run ()

Un ejemplo:


public class ThreadEjemplo extends Thread { 
public ThreadEjemplo(String str) { 
    super(str); 
 } 
public void run() { 
    for (int i = 0; i < 10 ; i++) 
   System.out.println(i + " " + getName()); 
  System.out.println("Termina thread " + getName()); 
 } 
public static void main (String [] args) { 
    new ThreadEjemplo("Pepe").start(); 
    new ThreadEjemplo("Juan").start(); 
  System.out.println("Termina thread main"); 
 } 
}

Es un ejemplo de como construir un método de hilo, junto con un ciclo for para imprimir una lista de datos.


Si se compila y ejecuta el programa, podrá obtenerse una salida como la siguiente: 

0 Pepe 
1 Pepe 
2 Pepe 
3 Pepe 
0 Juan 
4 Pepe 
1 Juan 
5 Pepe 
2 Juan 
6 Pepe 
3 Juan 
7 Pepe 
4 Juan 
8 Pepe 
5 Juan 
9 Pepe 
6 Juan 
Termina thread Pepe 
7 Juan 
8 Juan 
9 Juan 
Termina thread Juan

No hay comentarios:

Publicar un comentario