Subprocesos (threads) |
Vemos en el applet, varios círculos aumentando y disminuyendo de radio, de forma independiente unos de los otros y a distinto ritmo. Este ejemplo nos da la ilusión de un conjunto de subprocesos que se ejecutan a la vez.
El proyecto consta de dos clases
La clase derivará de la clase base Thread
y tendrá los siguientes miembros dato
y las funciones miembro siguientes:
Como criterio se establece que el círculo crece hasta que su radio actual sea el doble que su radio medio, y decrece hasta que su radio sea igual a 1.
Se reservará espacio para un array que guarde un máximo de 10 círculos
En la función miembro init se crearán los objetos de la clase Circulo y se guardarán en el array.
En la función miembro start se pondrán en marcha los subprocesos descritos por la clase Circulo.
En la función miembro stop, se pararán todos los subprocesos descritos por la clase Circulo.
Se redefinirá update, dibujándose todos los círculos empleando la técnica del double-buffer.
El radio medio de los círculos será un número aleatorio compendido entre 5 y 25
Se elegirá al azar un color de un array colores y se pintará el círculo de dicho color.
El tiempo de pausa (argumento de sleep) será un número al azar entre 50 y 550
La posición del círculo estará dada por dos números al azar
Estos datos se pasan al constructor de la clase Circulo cuando se crean los objetos de dicha clase.
Un número al azar comprendido entre 0 y 1 se puede generar con la función random de la clase Math, o bien, se puede emplear la clase Random.
procesos:
Circulo.java, ProcesosApplet.java