INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

CJ02 – Técnicas avanzadas en java 1.4 y 5.0
UNIVERSIDAD PRIVADA SAN PEDRO ESCUELA INGENIERIA CIVIL
Curso de java básico (scjp)
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Curso de Java Capitulo 7: Continuación Poo Profesor:
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
Programación Interactiva Hilos
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Programación en Java Instructor:.
Concurrencia En el mundo real pasan muchas cosas a la vez
Curso de Java y Aplicaciones Web
Informática II Prof. Dr. Gustavo Patiño MJ
Aplicación del paradigma orientado a objetos
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (apunts de l’assignatura en format transparència) Multithreading and.
Qué pasa cuando varios clientes tratan de conectarse al mismo teimpo a un servidor Una forma es ir atendiéndolos de a uno en un ciclo: como en el programa.
Tema 12: Programación multihilo
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
HERENCIA.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
 son segmentos de código de un programa que se ejecutan secuencialmente de modo independiente de las otras partes del programa.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
10. Hilos Definición y ejecución Thread y Runnable
Java. Threads (Hebras) Los sistemas operativos actuales permiten la multitarea, aunque esta se de tiempo compartido cuando se trabaja con un solo procesador.
Modificadores.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP Sun Certified Programmer for Java 6
Un hilo es un único flujo de ejecución dentro de un proceso. Un proceso es un programa ejecutándose dentro de su propio espacio de direcciones. Los.
Semana 5 Subprogramas..
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Sincronización de Threads en Java Josep Joan.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
Tema 11: Excepciones Antonio J. Sierra.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Capítulo 9: THREADS Carlos Oñate Bravo. THREADS Start New Threads lRecognize Thread States and Transitions Use Object Locking to Avoid Concurrent Access.
Animación usando Threads (lógica) Tema 10. Threads Definición: Un thread es un flujo secuencial de control dentro de un programa. Definición: Un thread.
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
TEMA 2. Programación Concurrente
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
Detalles Generales sobre Java
Threads en Java  Threads: programas multitarea  Creación de threads  Ciclo de vida de un thread  Sincronización.
CRUCIGRAMA HORIZONTALES: VERTICALES:
Hilos y Multihilos Un thread (hilo, flujo de control del programa) representa un proceso individual ejecutándose en un sistema. A veces se les llama.
Hilos Java Profesor Elian Rojas Berrocal
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Tema 1: Concurrencia con Java
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA

LA CLASE THREAD –CONSTRUCTORES –METODOS –METODOS SYNCHRONIZED ANULADOS –SENTENCIAS SYNCHRONIZED GRUPOS DE THREADS –CONSTRUCTORES –METODOS INTERFACE RUNNABLE EXCEPCIONES

Ing. E.D'AgostinoINFORMATICA III Constructores má usados de Thread public Thread ( String threadName) construye un thread cuyo nombre es threadName public Thread () construye un thread cuyo nombre es Thread concatenado con un dígito (Thread1, Thread2) public Thread(Runnable target) Target es el objeto cuyo método run se va a ejecutar

Ing. E.D'AgostinoINFORMATICA III La clase Thread Métodos más importantes: public synchronized void start() Causa que este thread comience a ejecutarse; la MVJ llama al método run de este thread. public void run() activa el thread public final synchronized void join(long millis) throws InterruptedException espera por la terminación

Ing. E.D'AgostinoINFORMATICA III public void interrupt() sale de un wait, sleep o join public boolean isInterrupted() determina si un hilo ha sido interrumpido public static void yield() cede el paso La clase Thread

Ing. E.D'AgostinoINFORMATICA III public final void stop() Fuerza que el hilo detenga su ejecución public final void suspend() cuando se invoca pasa al estado suspendido public final void resume() abandona el estado suspendido public String toString() Retorna un String que representa al hilo La clase Thread

Ing. E.D'AgostinoINFORMATICA III Métodos estáticos más interesantes: public static Thread currentThread() public static void sleep(long millis) throws InterruptedException La clase Thread

Ing. E.D'AgostinoINFORMATICA III Métodos de la clase Object que controlan la suspensión del Thread actual: wait() (equivale a 0 milisegundos) wait (milisegundos) notify ()notifyAll() La clase Thread

Ing. E.D'AgostinoINFORMATICA III Wait y notify Sirven para comunicar los threads entre sí synchronized void cuandoCondicion ( ) { while ( ! condicion ) wait ( ); ….hacer lo que sea necesario cuando la condicion sea cierta }

Ing. E.D'AgostinoINFORMATICA III synchronized void cambiaCondicion ( ) { ….cambiar algún valor usado en condición notify ( ) ; // notifyAll ( ) } Wait y notify

Ing. E.D'AgostinoINFORMATICA III Para que el contenido del objeto sea estable todo debe ocurrir en método synchronized. Cuando se suspende el thread libera en forma atómica el bloqueo del objeto. La prueba de la condición debe estar siempre en un bucle. Wait y notify

Ing. E.D'AgostinoINFORMATICA III public final void wait (long timeout) throws InterruptedException public final void wait (long timeout, int nanos) throws InterruptedException public final void wait () throws InterruptedException Wait

Ing. E.D'AgostinoINFORMATICA III Notify public final notify ( ) public final notifyAll ( )

Ing. E.D'AgostinoINFORMATICA III PÉRDIDA DEL ESTADO DE EJECUCIÓN Un thread deja su estado de ejecución por una de las siguientes causas:  El método sleep se invoca.  El thread llama al método wait y espera que una determinada condición se satisfaga.  El thread está bloqueado por una I/O.  El método suspend se invoca.

Ing. E.D'AgostinoINFORMATICA III Métodos synchonized anulados Si una clase extendida anula un método synchronized, el nuevo método puede o no ser synchronized. El método de la superclase continúa siendo synchronized.

Ing. E.D'AgostinoINFORMATICA III Sentencias synchronized Permite ejecutar código sincronizado sin invocar un método sincronizado sentencia bloqueo

Ing. E.D'AgostinoINFORMATICA III Forma general: synchronized (expresión) sentencia Sentencias synchronized Objeto a bloquear

Ing. E.D'AgostinoINFORMATICA III public static void abs (int [] values) { synchronized (values) { for (int i = 0; i< values; i++) { if (values [i] < 0) values [i] = -values[i]; } Sentencias synchronized

Ing. E.D'AgostinoINFORMATICA III public class ThreadGroup extends Object Un thread group representa un conjunto de hilos. Un thread group puede incluir también otros thread groups. Grupos de hilos

Ing. E.D'AgostinoINFORMATICA III Tiene dos constructores: public ThreadGroup (String cadenanombre) construye un ThreadGroup cuyo nombre es cadenanombre public ThreadGroup ( ThreadGroup padre, String cadenanombre) construye un ThreadGroup hijo de padre, llamado cadenanombre Grupos de hilos

Ing. E.D'AgostinoINFORMATICA III La clase Thread tiene tres constructores que permiten crear un Thread y asociarlo a un grupo: –public Thread (ThreadGrroup threadGroup, String nombre) –public Thread (ThreadGrroup threadGroup, Runnable objetoEjecutable) –public Thread (ThreadGrroup threadGroup, Runnable objetoEjecutable, String cadena) Grupos de hilos

Ing. E.D'AgostinoINFORMATICA III Métodos principales de ThreadGroup public int activeCount(); Retorna el numero de hilos activos public int activeGroupCount(); Retorna el numero de grupos activos

Ing. E.D'AgostinoINFORMATICA III public final void checkAccess(); Determina si el thread actual tiene permiso para modificar el thread group. Si no tiene permiso lanza una excepción. public final void destroy() ; Destruye este thread group y todos sus subgrupos Métodos de ThreadGroup

Ing. E.D'AgostinoINFORMATICA III public int enumerate(Thread list[]) Copia en el arreglo cada thread activo de este thread public int enumerate(Thread list[], boolean recurse) Igual al anterior. Si el argumento booleano es true copia las referencias a los thread que pertenecen a los subgrupos que forman parte del thread group. Si el arreglo es demasiado chico, los ignora sin avisar nada. Métodos de ThreadGroup

Ing. E.D'AgostinoINFORMATICA III public final ThreadGroup getParent(); Retorna el padre del ThreadGroup public final boolean isDaemon() Testea si este thread group es daemon.Un daemon thread group se destruye automaticamente cuando el ultimo thread es parado o su ultimo thread group se destruye public void list(); Imprime información sobre el grupo en la salida estandar.Es útil para public final boolean parentOf(ThreadGroup g); Testea si el thread group es el thread group del argumento o uno de sus ancestros Métodos de ThreadGroup

Ing. E.D'AgostinoINFORMATICA III public interface Runnable La interface Runnable debería ser implementada por cualquier clase cuyas instancias vayan a ser ejecutadas por un thread. La clase debe definir un metodo llamado run sin argumentos. Interface Runnable

Ing. E.D'AgostinoINFORMATICA III Excepciones que pueden sel lanzadas por métodos de threads SecurityException (checkAccess) IlegalArgumentException (setPriority) IlegalThreadStateException (suspend/resume) InterruptedException (otro thread quiere interrumpir el actual)

Ing. E.D'AgostinoINFORMATICA III BIBLIOGRAFÍA Como programar en java Deitel y Deitel. Pearson Educación Java. Fundamentos de Programación Judy Bishop. Addison-Wesley