trabajo programacion

1Hilos Fernando Alexander Maigual Delgado Octubre 2020. Universidad de Cundinamarca Fusagasugá. Programación II 1. Q

Views 130 Downloads 3 File size 76KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1Hilos

Fernando Alexander Maigual Delgado Octubre 2020.

Universidad de Cundinamarca Fusagasugá. Programación II

1. Que es un hilo: Un hilo es un flujo de control dentro de un programa. Creando varios hilos podremos realizar varias tareas simultáneamente. Cada hilo tendrá sólo un contexto de ejecución (contador de programa, pila de ejecución). Es decir, a diferencia de los procesos UNIX, no tienen su propio espacio de memoria sino que acceden todos al mismo espacio de memoria común, por lo que será importante su sincronización cuando tengamos varios hilos accediendo a los mismos objetos. 2. Como se trabajan los hilos en java: En Java los hilos están encapsulados en la clase Thread. Parag crear un hilo tenemos dos posibilidades:  

Heredar de Thread redefiniendo el método run (). Crear una clase que implemente la interfaz Runnable que nos obliga a definir el método run (). En ambos casos debemos definir un método run () que será el que contenga el código del hilo. Desde dentro de este método podremos llamar a cualquier otro método de cualquier objeto, pero este método run () será el método que se invoque cuando iniciemos la ejecución de un hilo. El hilo terminará su ejecución cuando termine de ejecutarse este método run (). 3. Cuáles son las clases con las cuales puedo construir hilos La clase Thread, Java da soporte al concepto de Thread desde el propio lenguaje, con algunas clases e interfaces definidas en el paquete java.lang y con métodos específicos para la manipulación de Threads en la clase Object. Para crear un hilo tenemos dos posibilidades:

 

Heredar de Thread redefiniendo el método run(). Crear una clase que implemente la interfaz Runnable que nos obliga a definir el método run(). 4. Métodos para el manejo de hilos: Cuando se instancia la clase Thread (o una subclase) se crea un nuevo Thread que está en su estado inicial ('New Thread' en el gráfico). En este estado es simplemente un objeto más. No existe todavía el thread en ejecución. El único método que puede invocarse sobre él es el método start(). Cuando se invoca el método start () sobre el hilo el sistema crea los recursos necesarios, lo planifica (le asigna prioridad) y llama al método run (). En este momento el hilo está corriendo, se encuentra en el estado ‘runable’. Si el método run() invoca internamente el método sleep() o wait() o el hilo tiene que esperar por una operación de entrada/salida, entonces el hilo pasa al estado 'no runnable' (no ejecutable) hasta que la condición de espera finalice. Durante este tiempo el sistema puede ceder control a otros hilos activos.

5. Programa: En este programa sencillo se visualizara como es la función de los hilos: package principal; class MiHilo implements Runnable { String nombreHilo; MiHilo(String nombre){ nombreHilo=nombre; } //Punto de entrada del hilo //Los hilos se comenzaran a ejecutarse aquí @Override public void run(){ System.out.println("Comenzando "+nombreHilo); try { for (int contar=0; contar