Un ejemplo de tarea ()ue se realiza una sola vez es la carga de imágenes *.gif o *.jpeg. ()ue ya
se realiza automáticamente en un thread especial.
Sin embargo, los sonidos no se cargan en threads especiales de fonna automática; los debe
crear el programador para cargarlos en "background*'. Este es un caso típico de programa producer-
consumer: el thread es el producer y el applet el consumer. Las threads deben estar sincronizadas,
para lo que se utilizan los métodos waitQ y notifyAllf).
A continuación se presenta un ejemplo de thread con tarea repetitiva:
public void start() {
if (repetitiveThread == nuil) {
repetitiveThread
= new Thread(this); // se crea un nuevo thread
}
repetitiveThread.start(); // se
arranca el thread creado: start() llama a run()
}
public void stop()
{
repetitiveThread — nuil; // para parar la ejecución del thread
>
public void run() {
while (Thread.currentThread() ==
repetitiveThread) {
... // realizar la tarea repetitiva.
... // realizar la tarea repetitiva.
}
}
No hay comentarios:
Publicar un comentario