ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Código de la clase “Temporizador”:


Enviado por   •  1 de Noviembre de 2022  •  Tarea  •  1.119 Palabras (5 Páginas)  •  128 Visitas

Página 1 de 5

UNIVERSIDAD NACIONAL TECNOLÓGICA DE LIMA SUR

FACULTAD DE INGENIERÍA Y GESTIÓN

CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS

 [pic 1]

SEMANA 09: ACTIVIDAD SÍNCRONA

(HILOS Y CONCURRENCIA).

Actividad presentada para la asignatura de

Lenguaje de Programación I, dirigida por

Mg. Maruja Emélita Blas Rebaza.

Estudiante:

Timaná Espinoza Marcia Kori

20B3010238

Villa el Salvador

2022


Ejercicio – Temporizador

Estructura:

[pic 2]

Código de la clase “Temporizador”:

package Temporizador;   //paquete

import java.util.*; /*importar librería(s) de java.util

Se utilizará para importar la clase ArrayList del paquete java.util

Así como también se utilizará la clase iterator*/

//clase Temporizador con herencia simple de la clase principal Thread

public class Temporizador extends Thread{

    private int espera; //atributo privado entero (int espera)

   

    private List despertables = new ArrayList();    //hacer una colección mediante la declaración de un ArrayList de "Empleado"

   

    //constructor Temporizador

    public Temporizador (int espera){

        this.espera = espera;   //this es un puntero o una referencia, indica el parámetro de espera

    }

    //métodos de add (agregar) y remove (eliminar) para Despertable

    public void addDespertable (Despertable d){

        despertables.add(d);

    }

    public void removeDespertable (Despertable d){

        despertables.remove(d);

    }

    @Override   //sobreescritura de métodos

    //método run

    public void run(){

        //ciclo while para interrumpir un hilo durante el sueño

        // dormirá el hilo principal durante la espera (en segundos) cada vez que se ejecuta el ciclo while

        while(!interrupted()){

            //exception (try - catch) para manejar errores en la ejecución

            try{

                Thread.sleep(espera);   //el método sleep lanza la excepción InterruptedException

            } catch (InterruptedException e){

                break;

            }

            //iterar una lista

            Iterator it = despertables.iterator();  //obtener el iterador

            //ciclo while

            while (it.hasNext()){   //devuelve verdadero hasta que it llega al final de la lista

                Despertable d = (Despertable) it.next();    //llamar it.next()dentro del bucle para avanzar en el iterador

                d.despierta();  //variable con acceso al método despierta()

            }

        }

    }

}

Código de la interfaz “Despertable”:

package Temporizador;   //paquete

//interfaz Despertable

public interface Despertable {

    //método despierta()

    void despierta();   //void es un metodo que no devuelve ningun resultado

}

Código de la clase “Perezoso”:

package Temporizador;   //paquete

//clase Perezoso con herencia simple a la interfaz Despertable

public class Perezoso implements Despertable{

    private String nombre;  //atributo privado String nombre

   

    //constructor Perezoso

    public Perezoso (String nombre){

        this.nombre = nombre;   //this es un puntero o una referencia, indica el parámetro de nombre

    }

   

    //método de acceso "despierta()"

    public void despierta(){

        System.out.println(nombre + ": he sido despertado");    //imprimir el contenido dentro del paréntesis en la ejecución

    }

}

...

Descargar como (para miembros actualizados) txt (6 Kb) pdf (207 Kb) docx (149 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com