Sie sind auf Seite 1von 5

UNIVERSIDAD PRIVADA FRANZ TAMAYO INGENIERA DE SISTEMAS

LABORATORIO: CAMBIOS EN EL PROGRAMA BOUNCEBALLS

Materia: SISTEMAS OPERATIVOS II Alumno: ENRIQUE PONCE DE LEON MONTAO Docente: Ing. Roberto Vargas

11 de Septiembre de 2013 La Paz - Bolivia

CLASE THREAD DE JAVA

Entre los mtodos de la clase Thread de Java podemos mencionar: static int activeCount() Devuelve el nmero actual de hilos activos en el grupo de hilos de este hilo. void checkAccess() Determina si el hilo actualmente en ejecucin tiene permiso para modificar este hilo. static Thread currentThread() Devuelve una referencia al objeto hilo que se est ejecutando actualmente void destroy() Destruye este hilo, sin realizar ningn tipo de limpieza static void dumpStack() Imprime una traza de pila del hilo actual static int enumerate(Thread[] tarray) Copia dentro del array especificado todos los hilos activos del grupo y subgrupos de hilos del hilo en cuestin ClassLoader getContextClassLoader() Devuelve el contexto ClassLoader de este Thread String getName() Devuelve el nombre del hilo void setName(String name) Cambia el nombre de este hilo, asignndole el especificado como argumento int getPriority() Devuelve la prioridad del hilo

ThreadGroup getThreadGroup()

Devuelve el grupo de hilos al cual cual pertenece el hilo void interrupt() Interrumpe la ejecucin del hilo static boolean interrupted() Comprueba si el hilo actual ha sido interrumpido boolean isAlive() Comprueba si el hilo est vivo boolean isDaemon() Comprueba si el hilo es un hilo daemon void setDaemon(boolean on) Establece este hilo como hilo daemon, o como hilo de usuario void join() Espera a que este hilo muera void join(long millis) Espera, como mucha millis milisegundos a que este hilo muera void run() Si este hilo se construy utilizando un objeto Runnable de ejecucin independiente, entonces el mtodo run de ese objeto es invocado; en otro caso, este mtodo no hace nada y vuelve. static void sleep(long millis) Hace que el hilo actualmente en ejecucin pase a dormir temporalmente durante el nmero de milisegundos especificado.

void start()

Hace que este hilo comience la ejecucin; la Mquina Virtual de Java llama al mtodo run de este hilo.

OBJETIVOS
En el programa BounceBalls se plantea hacer los siguientes cambios: Agregar cdigo para usar los mtodos isAlive(), join() , suspend() y resume() Cambiar el flujo de ejecucin de la aplicacin

PROCEDIMIENTO
1. A la clase BounceFrame se le agrega una propiedad currentThread. private Thread currentThread; 2. Cada vez que se agrega un Ball, se apunta el thread creado al atributo currentThread Thread t = new Thread(r); t.start(); currentThread = t; 3. Se agrega un boton JOIN y se llama al metodo JOIN del currentThread. public void joinBall() { if (currentThread.isAlive()){ try { currentThread.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

4. Se agrega un botn PAUSE y se llama al mtodo SUSPEND del currentThread @SuppressWarnings("deprecation") public void pauseBall() throws InterruptedException { if (currentThread.isAlive()){ currentThread.suspend(); } }

5. Se agrega un boton RESUME y se llama al mtodo RESUME del currentThread @SuppressWarnings("deprecation") public void resumeBall() { if (currentThread.isAlive() ){ currentThread.resume(); } }

RESULTADOS
La funcionalidad del los botones hicieron que los hilos cambian de comportamiento, y se ha demostrado la independencia de los threads y su ciclo de vida. Por otro lado se ha comprobado los mtodos de manejo de hilos de la clase thread, aunque algunos ya ha quedado deprecated, por lo menos en la versin del JDK de java que tengo instalado.

CONCLUSIONES
El cambio del programa en BounceBalls se me torno un poco complicado por la inexperiencia en el manejo del lenguaje de programacin, pero el ejemplo del uso de la clase Thread ha quedado demostrada en este laboratorio.

Das könnte Ihnen auch gefallen