Pratica 10

Bueno. seguimos con el swing…

Ejercicio 1

El primer ejercicio simplemente nos sirve para introducirnos en los procesos. Sólamente hemos tenido que ir copiando, pegando y ejecutanto tres clases.

La primera de ellas, llamada Ding, se encarga de lanzar un proceso que imprime Ding! por pantalla cada vez que pulsamos la tecla enter. Vemos que la complejidad de la clase es bastante baja y no tiene más.

La segunda clase se encarga de lanzar un proceso cada segundo que consiste en imprimir por pantalla el texto Dong!.

En este proceso se usa algo nuevo (Thread.sleep(1000);)que es quien se encarga de contar el tiempo.

Finalmente ejecutamos un texto que lo pretende es lanzar dos procesos a la vez pero éste ya no funciona correctamente ya que no puedes mandar al ordenador que ejecute más de un proceso al tiempo, para poder conseguir esto será necesarío llevarlos por diferentes vías.

Ejercicio 2

En este ejercicio comenzamos a ver como podemos lanzar dos procesos juntos mediante la creación de diferente hilos.

La mecánica de este ejercicio es la misma que la primera, iremos copiando y compilando.

En primer lugar, creamos una clase llamada TwoThreads que nos imprimirá por pantalla el nombre de los hilos creados en ésta. Al compilalarla vemos que funciona correctamente y nos imprime por pantalla;

main

Thread-0

La clase thread esta relacionada con la clase runable y cuando imvocamos a start(thread) se ejecuta automaticamente lo que haya en el método run() que pretenece a runnable. En dicho método, escribimos el código que se encargará de hacer lo que nosotros queramos, en este caso imprimir el nombre del hilo.

Podemos ver algo que en principio nos podrá chocar, y es la creación de un objeto de runnable, que es un interfaz, ya que en principio esto no se puede hacer, pero en realidad, lo que estamos haciendo es una clase interna, invocando dentro de esta el método run() característico de runnable.

En el segundo texto vemos una manera diferente de hacer la misma cosa.

La diferencia principal es que la clase principal implementa a runnable, por lo que ya no tenemos ninguna cosa “rara” ;-) . Run está dentro del cuerpo de la clase principal y en el main es donde se crea un objeto de la clase TwoThreadsSimple pero con las caracteristicas de runnable.

En último lugar tenemos el tercer texto en el que volvemos a conseguir el mismo resultado, pero la caraterística principal de este programa es que la clase hereda de Thread por lo que al hacer el objeto en el main de la clase TwoThreadsSimple, éste tendra todas las características de runnable ya que pertenece a Thread y hemos heredado de Thread.

Ejercicio 3

En este código se crean dos hilos, write0 y write1 y se llama al método start que está definido en runnable.

En principio lo que se podría esperar de este código viendolo a primera vista es que te imprima 10.000 ceros seguidos de 10.000 unos pero no ocurre así debido al funcionamiento en si de los hilos.

Lo que queremos con los hilos es ejecutar varios procesos a la vez, para ello se les adjudica un tiempo del total para cada hilo pero este tiempo no lo va a emplear seguido, es decir, si tiene 20ms no los agotará al instante, lo que hace es ir alternando los hilos a la hora de su ejecución.

En definitiva, el tiempo de ejecución de los procesos nos es desconocido pero es precisamente eso lo que nos interesa ya que nos debe dar la sensación de que éstos se ejecutan paralelamente aunque no sea así.

~ por julitros2008 en Mayo 20, 2008.

Escribe un comentario