martes, 6 de mayo de 2014

UTILIZACIÓN DE THREADS EN APPLETS - II

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.
}
}

El método runf) se detendrá en cuanto se ejecute el método stop(). porque la referencia al thread está a nuil.

No hay comentarios:

Publicar un comentario