Tema 4: Control del flujo de ejecución: Excepciones y Threads. Programación Orientada a Objetos. Marcos López Sanz

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema 4: Control del flujo de ejecución: Excepciones y Threads. Programación Orientada a Objetos. Marcos López Sanz"

Transcripción

1 Tema 4: Control del flujo de ejecución: Excepciones y Threads Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual MARCOS LOPEZ SANZ Excepciones Def.: Problemas que ocurren durante la ejecución de un programa o aplicación En Java: Objeto que define una situación inusual o érronea y que son lanzadas por un programa o el entorno de ejecución Tipos: Excepciones: pueden ser capturadas y manejadas por el programa en ejecución Errores: representan situaciones irrecuperables y no deberían ser capturadas Formas de actuación frente a excepciones: A. Ignorarlas B. Tratarlas donde ocurren C. Tratarlas en otro punto del programa Propagación MARCOS LOPEZ SANZ 1

2 Tratamiento de excepciones: Opción A: Ignorar Si una excepción no se captura el programa termina ( ended abnormally ) Toda sentencia que aparece después del punto donde se produjo el problema no se ejecuta * Se suele mostrar un mensaje descriptivo de la excepción ocurrida: Nombre de la clase de excepción Mensaje descriptivo Pila de llamadas java.lang.arithmeticexception: / by zero at Ejemplo1.main(Ejemplo1.java:5) Método donde se produjo el error Última línea ejecutada (causa) Fichero que contiene la clase MARCOS LOPEZ SANZ Tratamiento de excepciones: Opción A: Ignorar public class Ejemplo1 public static void main() int i = 10/0; java.lang.arithmeticexception: / by zero at Ejemplo1.main(Ejemplo1.java:21) MARCOS LOPEZ SANZ 2

3 Tratamiento de excepciones: Opción B: Captura y manejo Sentencia try-catch-finally: try Delimita un bloque de sentencias que pueden dar lugar a un error (lanzar una excepción) catch (<claseexcepcion> objexc) Bloque en el que se define cómo debe tratarse la excepción Se pueden anidar varios tipos de excepciones (de la más concreta a la más general o por orden de preferencia de tratamiento) finally Bloque de código que siempre se ejecuta Se suele utilizar para continuar la ejecución estable de un programa MARCOS LOPEZ SANZ Tratamiento de excepciones: Opción B: Captura y manejo public class Ejemplo2 public static void main() int numerador = 5; int denominador = 0; try int resultado = numerador/denominador; System.out.println("Resultado: " + resultado); catch (ArithmeticException ex) System.out.println("Error!!!!!"); finally System.out.println("Esto siempre se ejecuta"); MARCOS LOPEZ SANZ 3

4 Tratamiento de excepciones: Opción B: Captura y manejo public class Ejemplo3 public static void main() int numerador = 5; int[] denominador = new int[2]; try denominador[0] = 0; int resultado = numerador/denominador[2]; System.out.println("Resultado: " + resultado); catch (ArithmeticException ex) System.out.println("Error aritmético!!!!!"); catch (Exception ex) System.out.println("Error general!!!!!"); finally System.out.println("Esto siempre se ejecuta"); MARCOS LOPEZ SANZ Tratamiento de excepciones: Opción C: Propagación Propagación: consiste en capturar la excepción externamente al método en el que se produce la excepción La excepción se propaga hasta que es capturada o hasta que llega al método main (equivalente a ignorarla) public class Ejemplo3 public Ejemplo3() public static void main() Ejemplo3 obj3 = new Ejemplo3(); obj3.metodo1(); MARCOS LOPEZ SANZ 4

5 Tratamiento de excepciones: Opción C: Propagación public void metodo1() //try this.metodo2(); // //catch (ArithmeticException ex) System.out.println("Error aritmético!!!!!"); // public void metodo2() this.metodo3(); public void metodo3() int error = 3/0; java.lang.arithmeticexception: / by zero at Ejemplo3.metodo3(Ejemplo3.java:18) at Ejemplo3.metodo2(Ejemplo3.java:14) at Ejemplo3.metodo1(Ejemplo3.java:7) at Ejemplo3.main(Ejemplo3.java:24) MARCOS LOPEZ SANZ Jerarquía de errores y excepciones (Incompleta) Object Throwable Error Exception LinkageError ClassNotFoundException AWTError NoSuchMethodException ThreadDeath RuntimeException VirtualMachineError ArithmeticException IndexOutOfBoundsException NullPointerException MARCOS LOPEZ SANZ 5

6 Clases Exception y Throwable Clase Exception (java.lang): constructores: Exception () Exception (String mensaje) Exception (String mensaje, Throwable causa) Exception (Throwable causa) Clase Throwable (java.lang): clase base de Error y Exception getcause(): devuelve un objeto Throwable que representa la excepción que lo lanzó getmessage(): String con una breve descripción de la excepción (o error) printstacktrace(): String con la traza de invocaciones actuales MARCOS LOPEZ SANZ Creación y lanzamiento de excepciones Para crear una excepción personalizada hay que crear una clase que herede de Exception: public class ExcepcionPropia extends Exception public ExcepcionPropia(String mensaje) super(mensaje); Lanzamiento de excepciones (propias o predefinidas) throw refobjetoexcepcion ExcepcionPropia fallo; fallo = new ExcepcionPropia( Esto es un error ); throw fallo; El resto de sentencias no se ejecutarán MARCOS LOPEZ SANZ 6

7 Tipos de excepciones Tipos de excepciones: Unchecked o en tiempo de ejecución: son aquellas producidas dentro del entorno de ejecución de Java (aritméticas, puntero a null, índice no válido, etc.) Checked o no dependientes de la ejecución: son aquellas cuya causa no depende directamente del entorno de ejecución (p.ej. errores de entrada/salida) Las excepciones no dependientes de la ejecución siempre hay que capturarlas o decir que el método lanza la excepción no controlada Cuando no se captura una excepción es posible hacer que el método en el que se produce lance una excepción determinada (checked o unchecked): public void metodo3() throws ArithmeticException int error = 3/0; Es posible que un método lance más de una excepción (se separan por comas) public void escribirarrayenfichero() throws IOException, ArrayIndexOutOfBoundsException MARCOS LOPEZ SANZ Excepciones más comunes Excepciones ArithmeticException: Errores de cálculo IndexOutOfBoundsException: Índices mal usados en arrays, strings o vectores ClassNotFoundException: clase no encontrada FileNotFoundException: fichero no encontrado InvalidParameterException: El argumento pasado no es válido NullPointerException: Referencia a un objeto vacío IOException: error de entrada/salida Errores: AbstractMethodError: intento de instanciar una clase abstracta InternalError: error interno del intérprete UnknownError: error desconocido OutOfMemoryError: la máquina virtual se ha quedado sin memoria MARCOS LOPEZ SANZ 7

8 Threads: introducción Def 1.: Camino seguido por un programa durante su ejecución Def 2.: Sección de código ejecutado independientemente de otros hilos de ejecución en un único programa Necesidad: realizar múltiples tareas simultáneamente para obtener un objetivo o resultado Concurrencia: ante la ejecución de diferentes hilos de ejecución existe un planificador (scheduler) dentro de la máquina virtual de Java que es quien selecciona la tarea a ejecutar en cada momento. La concurrencia en java se basa en threads o procesos ligeros. En otros lenguajes o sistemas, la concurrencia se basa en una replicación de datos y código en contextos diferentes, en Java son controlados por un proceso único: la máquina virtual de Java MARCOS LOPEZ SANZ Threads: ciclo de vida EN ESPERA Parado Bloqueado destroy() Cierre E/S MUERTO Thread.sleep() interrupt() Fin de sleep() Object.wait() notify() / notifyall() Bloqueo externo al thread Respuesta de E/S o liberación del bloqeo start() VIVO Ejecutable planificador yield() En ejecución destroy() Nuevo thread Fin de run() MARCOS LOPEZ SANZ 8

9 Threads: definición La definición de un thread siempre está asociada a una determinada clase Dos formas: Crear una clase que herede de Thread (java.lang.thread) Implementar el interfaz Runnable Ambas opciones de creación son equivalentes: Si se usa extends la clase no puede heredar de ninguna más pero sí implementar otros interfaces Si se usa implements, la clase puede heredar de otra clase e implementar otros interfaces Método heredado: run() Corresponde al main de un thread Es público, devuelve void y no admite argumentos No se permite que lance excepciones (throw) MARCOS LOPEZ SANZ Threads: definición (ejemplos) public class PruebaThread1 extends Thread public void run() public class PruebaThread2 implements Runnable Thread th; public void run() this.th = Thread.currentThread(); MARCOS LOPEZ SANZ 9

10 Estados de un thread: Nuevo Thread Para la creación de un nuevo thread hay que instanciar una clase que tenga las propiedades de Runnable: PruebaThread1 th1 = new PruebaThread1( primer thread ); Se trata de una instancia que no está en ejecución, es una referencia a un futuro hilo de ejecución Sólo admite los métodos start(): inicia la ejecución del código asociado al thread y pasa al estado ejecutable stop(): deprecated. No se recomienda su uso. Pasaría a estado muerto La invocación de cualquier otro método de la clase lanzaría la excepción IllegalThreadStateEsception MARCOS LOPEZ SANZ Estados de un thread: Ejecutable/En ejecución Una vez se ha creado la referencia al thread a ejecutar y se ha lanzado el método start() ocurre lo siguiente: Se reservan los recursos necesarios para la ejecución del thread Se añade el thread a la lista de procesos seleccionables por el planificador Se invoca el método run() definido en la clase del thread cuyas sentencias se ejecutan secuencialmente Estados: Ejecutable quiere decir que el thread está a la espera de que el planificador lo lleve a ejecución En ejecución quiere decir que se están ejecutando las sentencias del thread MARCOS LOPEZ SANZ 10

11 Estados de un thread: Ejecutable/En ejecución Admite los siguientes métodos: sleep(msec) de la clase Thread o wait(msec) de la clase Object: en ambos casos pasa a estado parado destroy()(no implementado): pasa a estado muerto yield(): si está en ejecución pasa a estar en estado ejecutable (pierde el control del procesador y tiene que esperar a que el planificador lo elija), al revés no tiene efecto También puede pasar a estado bloqueado: Esperando por una respuesta a una operación de Entrada/Salida Entrar en una condición de sincronización MARCOS LOPEZ SANZ Estados de un thread: Parado En este estado, el thread no puede realzar ninguna operación Origen y causa de evolución de estado wait() si alguien invoca el método notify() sobre el thread o notifyall() en general sleep() cuando termine el tiempo establecido en el parámetro o si se invoca interrupt() sobre el thread En ambos casos, al salir de este estado siempre se pasa a ejecutable MARCOS LOPEZ SANZ 11

12 Estados de un thread: Bloqueado Se entra en este estado cuando el thread está esperando por alguna condición que es externa a la máquina virtual Normalmente son condiciones de Entrada/Salida Evolución desde este estado: A ejecutable : cuando se obtiene la respuesta de la entrada/salida A muerto : cuando se invocan los métodos stop() (deprecated) o destroy() (no implementado) o bien algún otro thread cierra el canal de E/S por el que espera el thread bloqueado MARCOS LOPEZ SANZ Estados de un thread: Muerto Condiciones de llegada Desde cualquier estado al invocar stop() (deprecated) o destroy() (no implementado) Desde ejecutable/en ejecución : se llega al final del método run() MARCOS LOPEZ SANZ 12

13 Threads: Prioridades y programación de tareas La ejecución simultánea de varios threads es posible en máquinas monoprocesador por la existencia de un planificador que escoge el thread a ejecutar en cada momento Todo thread tiene una prioridad en función de la cual elige el planificador: MIN_PRIORITY (0), NORM_PRIORITY (5) y MAX_PRIORITY (10) La prioridad puede ser establecida con setpriority(int prioridad) Ante una misma prioridad se elige aleatoriamente Un thread puede dejar de estar en ejecución voluntariamente invocando el método yield() MARCOS LOPEZ SANZ Threads: Resumen de métodos principales Object: wait(): bloquea un thread indefinidamente notify(): desbloquea un thread parado con wait() notifyall(): desbloquea todos los threads Thread start(): comienza la ejecución de un thread yield(): pasa del estado en ejecución a estado ejecutable sleep(int msec): bloquea el thread los miliseg. indicados interrupt(): desbloquea un thread parado con sleep() isalive(): devuelve true si un thread está en estado ejecutable/en ejecución, parado o bloqueado. false en otro caso run(): método que contiene el conjunto de sentencias a ejecutar currentthread(): devuelve un objeto thread que representa al hilo de ejecución actual MARCOS LOPEZ SANZ 13

14 Sincronización entre threads Necesidad: Existencia de condiciones de carrera problemas en los cuales dos o más threads están leyendo o escribiendo datos compartidos y el resultado final depende de la planificación de ejecución Problemas de sincronización: resultados de ejecución inesperados (diferentes cada vez) MARCOS LOPEZ SANZ Problemas de sincronización: Ejemplo (clase Productor) public class Productor extends Thread ObjComun destino; public Productor (ObjComun objcompartido) this.destino = objcompartido; public void run() for (int i = 0; i < 10; i++) try System.out.println ( Productor pone:"+i); destino.put(i); sleep(10); catch (InterruptedException e) MARCOS LOPEZ SANZ 14

15 Problemas de sincronización: Ejemplo (clase Consumidor) public class Consumidor extends Thread ObjComun origen; public Consumidor (ObjComun objcompartido) this.origen = objcompartido; public void run() for (int i = 0; i < 10; i++) try System.out.println ("Consumidor quita:"+origen.get()); sleep(10); catch (InterruptedException e) MARCOS LOPEZ SANZ Problemas de sincronización: Ejemplo (clase ObjComun) public class ObjComun public int actual, ultimo = 0; public int[] arraycomun = -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1; public ObjComun() this.actual=0; public void put(int x) ultimo=actual; this.arraycomun[actual++]=x; public int get() return this.arraycomun[ultimo]; MARCOS LOPEZ SANZ 15

16 Problemas de sincronización: Ejemplo (clase principal) public class EjemploSinc public static void main() ObjComun o = new ObjComun(); Productor p = new Productor(o); Consumidor c = new Consumidor(o); p.start(); c.start(); MARCOS LOPEZ SANZ Consumidor quita: -1 Consumidor quita: -1 productor pone: 0 Consumidor quita: 0 productor pone: 1 Consumidor quita: 1 Consumidor quita: 1 productor pone: 2 Consumidor quita: 2 productor pone: 3 Consumidor quita: 3 productor pone: 4 Consumidor quita: 4 productor pone: 5 productor pone: 6 Consumidor quita: 6 productor pone: 7 Consumidor quita: 7 productor pone: 8 productor pone: 9 Sincronización y comunicación Solución: Los threads no deben acceder simultáneamente al objeto compartido hay que bloquear el acceso <visibilidad> synchronized <tipo><idmétodo>(<param.>) Mientras un thread ejecuta un método synchronized el resto de threads no puede acceder a ese objeto (estado bloqueado bloqueado por algo externo al thread) Entre varios threads colaboradores debe existir una comunicación uso de esperas (wait) y notificaciones (notify/notifyall) MARCOS LOPEZ SANZ 16

17 Threads: Comunicación y sincronización public synchronized int get() try while (disponible == false) wait(); catch (InterruptedException e) disponible = false; notifyall(); return this.arraycomun[ultimo]; public synchronized void put(int x) try while (disponible == true) wait(); catch (InterruptedException e) disponible = true; ultimo=actual; this.arraycomun[actual++]=x; notifyall(); MARCOS LOPEZ SANZ productor pone: 0 productor pone: 1 Consumidor quita: 0 Consumidor quita: 1 productor pone: 2 productor pone: 3 productor pone: 4 Consumidor quita: 2 Consumidor quita: 3 productor pone: 5 Consumidor quita: 4 Consumidor quita: 5 productor pone: 6 Consumidor quita: 6 productor pone: 7 Consumidor quita: 7 productor pone: 8 Consumidor quita: 8 productor pone: 9 Consumidor quita: 9 Threads: Miscelánea Diferencia entre wait() y sleep(): wait libera el bloqueo sobre el objeto, sleep no Nunca se puede hacer: objthread.run(); Deadlock: situación en la que varios threads se bloquean en espera de que el otro libere el recurso Why are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit deprecated?: Grupos de threads: Ejemplo: ThreadGroup migrupo = new ThreadGroup( migrupodethreads ); Thread th1= new Thread(miGrupo, Thread 1 ); Permite agrupar threads para poder lanzarles mensajes a todos a la vez: migrupo.interrupt(); MARCOS LOPEZ SANZ 17

18 Threads: Excepciones asociadas a threads SecurityException: lanzada cuando no se puede lanzar un método sobre un thread determinado por no tener permisos sobre él InterruptedException: lanzada cuando se desbloquea un thread parado con sleep() IllegalThreadStateException: lanzada cuando se intenta lanzar start() sobre un thread ya inicializado MARCOS LOPEZ SANZ Ejercicio Implementar la clase ColaDeEnteros (capacidad máxima 500) en la cual los métodos poner() y quitar() están sincronizados. Crear 2 clases de acceso a la ColaDeEnteros. Los objetos de ambas clases se identifican por un número entero. Generador: Inserta elementos en la cola siempre que haya menos de 10 enteros y hasta que se llena. En caso contrario, espera. Impresora: Lee e imprime por pantalla los elementos de la cola siempre que haya elementos. Si no hay elementos, espera. Completará 150 iteraciones. Parte A: crear 1 objeto Generador y 1 objeto Impresora. Cada uno completará 100 iteraciones Parte B: crear 5 objetos Generador y 5 objetos Impresora. Cada uno completará 50 iteraciones. Los generadores comenzarán por el número que les identifique como generador x100 MARCOS LOPEZ SANZ 18

19 Bibliografía Java software solutions, foundations of program design (3rd edition). J. Lewis & W. Loftus. Ed. Addison-Wesley, Cap. 8 (pp ) Java and Object Orientation: an introduction. J. Hunt. Ed. Springer- Verlag, Cap. 25 (pp ) Java threads (2nd edition). S. Oaks & H. Wong. Ed. O Reilly, Big Java: programming and practice. C. Horstmann. Ed. John Wiley & Sons, Cap. 14 y Throwable.html Exception.html Error.html Thread.html MARCOS LOPEZ SANZ 19

Tema 6. Threads: programas multitarea

Tema 6. Threads: programas multitarea Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos

Más detalles

Presentación. Programación I. Programación Orientada a Objetos. :: Prof. Yeniffer Peña

Presentación. Programación I. Programación Orientada a Objetos. :: Prof. Yeniffer Peña Presentación Programación Orientada a Objetos :: Prof. Yeniffer Peña Utiliza las excepciones java. Una excepción es una condición anormal que se produce en una porción de código durante su ejecución. Es

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?

Más detalles

Programación concurrente en Java

Programación concurrente en Java Diseño Y Aplicaciones de Sistemas Distribuidos Programación concurrente en Java Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Threads en

Más detalles

Resumen Manejo de Excepciones

Resumen Manejo de Excepciones Resumen Manejo de Excepciones Excepción Excepción es un cierto tipo de error o una condición anormal que se ha producido durante la ejecución de un programa. El nombre de excepción viene del hecho de que,

Más detalles

Parte I: Programación en un lenguaje orientado a objetos

Parte I: Programación en un lenguaje orientado a objetos Parte I: Programación en un lenguaje orientado a objetos 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos compuestos 5. Modularidad 6. Tratamiento

Más detalles

Guía práctica de estudio 12: Hilos

Guía práctica de estudio 12: Hilos : Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 12: Objetivo: Implementar el concepto de multitarea utilizando

Más detalles

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia

Más detalles

Laboratorio I Java Threads (Silberschatz Galvin)

Laboratorio I Java Threads (Silberschatz Galvin) Laboratorio I Java Threads (Silberschatz Galvin) Un proceso es un programa ejecutandose dentro de su propio espacio de direcciones. Java es un sistema multiproceso, esto significa que soporta varios procesos

Más detalles

Fundamentos de Computadores y Lenguajes

Fundamentos de Computadores y Lenguajes Fundamentos de Computadores y Lenguajes 1. Elementos básicos de los lenguajes 2. Instrucciones de control 3. Tipos de datos 4. Métodos 5. Modularidad y Abstracción 6. Tratamiento de errores 7. Entrada/salida

Más detalles

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control Hilos BUAP Introducción Normalmente, los programas son ejecutados de forma secuencial Único flujo de control Un programa con un único flujo de control, ejecuta sólo una tarea (hilo) Dr. Ivan Olmos 2 Introducción

Más detalles

TEMA 8. Excepciones en Java. Curso de Java. Manejo de Excepciones

TEMA 8. Excepciones en Java. Curso de Java. Manejo de Excepciones TEMA 8 Excepciones en Java Manejo de Excepciones Cuando un programa Java viola las restricciones semánticas del lenguaje (se produce un error), la máquina virtual Java comunica este hecho al programa mediante

Más detalles

Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008

Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008 Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los recursos

Más detalles

UPM Concurrencia en Java

UPM Concurrencia en Java UPM Concurrencia en Java Juan Antonio de la Puente DIT/UPM Hebras (threads) Una hebra es un objeto de una subclase de java.lang.thread o una implementación de la interfaz Runnable El código que ejecuta

Más detalles

1. Fundamentos. Existen dos tipos distintos de multitarea: BASADA EN PROCESOS

1. Fundamentos. Existen dos tipos distintos de multitarea: BASADA EN PROCESOS Hilos 1. Fundamentos. Los procesadores y los Sistemas Operativos modernos permiten la multitarea, es decir, la realización simultánea de dos o más actividades. En la realidad, un ordenador con una sola

Más detalles

dit Programación concurrente Sincronización condicional UPM

dit Programación concurrente Sincronización condicional UPM 20151028 dit UPM Programación concurrente Sincronización condicional Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons

Más detalles

Tema 4. Excepciones en Java

Tema 4. Excepciones en Java Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer

Más detalles

Excepciones. Una excepción es una situación anómala a la que llega la ejecución de un programa

Excepciones. Una excepción es una situación anómala a la que llega la ejecución de un programa Excepciones Una excepción es una situación anómala a la que llega la ejecución de un programa Excepciones Introducción Una máxima en el desarrollo de software dicta que el 80 % del esfuerzo (en tiempo

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta Excepciones... 5 Excepciones de uso frecuente... 8 Excepciones no comprobadas... 13 Excepciones comprobadas... 14 La clase Runtime Exception...

Más detalles

Tema 12: Programación multihilo

Tema 12: Programación multihilo Tema 12: Programación multihilo Antonio J. Sierra Índice 1. Modelo de hilo en Java. 2. El hilo principal. 3. Creación de un hilo. 4. Creación de múltiples hilos. Prioridades. 5. Comunicación entre hilos.

Más detalles

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá

Más detalles

TEMA 8. Agenda. Excepciones

TEMA 8. Agenda. Excepciones TEMA 8 Excepciones V1.0 28/05/06 Manuel Pereira González Agenda 1 Introducción Mecanismo para el control y gestión de errores basado en objetos llamados Excepciones Una Excepción es una condición anormal

Más detalles

Programación concurrente Hebras

Programación concurrente Hebras 20151021 dit UPM Programación concurrente Hebras Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons Reconocimiento-NoComercial-Compar9rIgual

Más detalles

Excepciones. Excepciones

Excepciones. Excepciones Excepciones FJP Unidad 12 Excepciones Una excepción es la representación de una condición de error o cualquier situación no esperada en el resultado de un método. Son instancias de subclases de la clase

Más detalles

Manejo de Excepciones

Manejo de Excepciones Manejo de Excepciones M. Consuelo Franky Julio Carreño Pontificia Universidad Javeriana 1 Temario Captura de excepciones Excepciones estándares Cómo provocar una excepción Cómo definir nuevas excepciones

Más detalles

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones Programación Orientada a Objetos en Java Curso 2006-2007 Tema 6 Excepciones Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Qué son? Excepciones

Más detalles

Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).

Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en

Más detalles

Procesamiento paralelo con hilos de Java

Procesamiento paralelo con hilos de Java Procesamiento paralelo con hilos de Java Tabla de contenidos 1. Soporte para hilos en Java... 1 2. Creación y control de un hilo... 2 2.1. Métodos de creación de un hilo... 2 2.2. Control de hilos mediante

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

Tema 3. Tratamiento de Excepciones

Tema 3. Tratamiento de Excepciones Tema 3. Tratamiento de Excepciones Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga Programación Orientada a Objetos Dpto. Lenguajes y Ciencias de la Computación.

Más detalles

Programación orientada a objetos. Capítulo 12 Manejo de errores

Programación orientada a objetos. Capítulo 12 Manejo de errores Programación orientada a objetos Capítulo 12 Manejo de errores Conceptos Programación a la defensiva Anticiparse a lo que podría ir mal Lanzamiento y tratamiento de excepciones Aserciones Causas de situaciones

Más detalles

Threads LSUB. 30 de marzo de 2016 GSYC

Threads LSUB. 30 de marzo de 2016 GSYC Threads LSUB GSYC 30 de marzo de 2016 (cc) 2015 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Programación Concurrente en Java: Threads

Programación Concurrente en Java: Threads Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid 7 de mayo de 007 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los

Más detalles

Tema 5 Corrección y Robustez Excepciones en Java

Tema 5 Corrección y Robustez Excepciones en Java Tema 5 Corrección y Robustez Excepciones en Java Parte II: Excepciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Introducción Excepciones comprobadas Caso de estudio Tratamiento

Más detalles

Diseño de tipos Igualdad, representación, código, copia y relación de orden

Diseño de tipos Igualdad, representación, código, copia y relación de orden Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones

Más detalles

Java Threads. Sistemas Distribuidos Rodrigo Santamaría

Java Threads. Sistemas Distribuidos Rodrigo Santamaría Java Threads Sistemas Distribuidos Rodrigo Santamaría Java Threads Hilos Sincronización Ejercicios FAQ 2 3 Hilos Un hilo (Thread) es un proceso en ejecución dentro de un programa java main Thread t t.start()

Más detalles

Threads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución.

Threads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución. Threads o Hilos Los hilos son otra forma de crear la posibilidad de concurrencia de actividades; sin embargo, la gran diferencia es que los hilos comparten el código y el acceso a los datos. En cierta

Más detalles

Ejemplo. class SiNoThread extends Thread { private String SiNo; static int Contador = 0; public SiNoThread(String s) { super(); SiNo = s; }

Ejemplo. class SiNoThread extends Thread { private String SiNo; static int Contador = 0; public SiNoThread(String s) { super(); SiNo = s; } Qué son los threads? Todos los programadores conocen lo que es un proceso, la mayoría diría que es un programa en ejecución: tiene un principio, una secuencia de instrucciones y tiene un final. Un thread

Más detalles

2. Indica cuál de las siguientes afirmaciones es cierta:

2. Indica cuál de las siguientes afirmaciones es cierta: Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido

Más detalles

Consiste en asumir que el usuario podrá usar de forma incorrecta y por tanto el programador deberá contemplar esos errores.

Consiste en asumir que el usuario podrá usar de forma incorrecta y por tanto el programador deberá contemplar esos errores. MANEJO DE ERRORES 1 Consiste en asumir que el usuario podrá usar de forma incorrecta y por tanto el programador deberá contemplar esos errores. Uno de los puntos más vulnerables son los parámetros que

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Sesión 9. TEMA 11 Clases abstractas. Manejo de errores y excepciones

Sesión 9. TEMA 11 Clases abstractas. Manejo de errores y excepciones Sesión 9. TEMA 11 Clases abstractas. Manejo de errores y excepciones Fundamentos de Informática José Jaime Noguera Noguera 6 de mayo de 2018 Contenidos 1 Introducción 2 Clases abstractas 3 Errores y excepciones

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()

Más detalles

UD 4 GESTIÓN DE ERRORES. Pedro J. Ponce de León. Versión

UD 4 GESTIÓN DE ERRORES. Pedro J. Ponce de León. Versión UD 4 GESTIÓN DE ERRORES Pedro J. Ponce de León Versión 20111005 Gestión Errores Objetivos Saber utilizar las sentencias de control de excepciones para observar, indicar y manejar excepciones, respectivamente.

Más detalles

Guía práctica de estudio 10: Excepciones y errores

Guía práctica de estudio 10: Excepciones y errores Página 152/208 Guía práctica de estudio 10: Excepciones y errores Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena 152 Objetivo: Código:

Más detalles

Java y JVM: programación concurrente. Adolfo López Díaz

Java y JVM: programación concurrente. Adolfo López Díaz Java y JVM: programación concurrente Adolfo López Díaz JVM Máquina virtual Ambiente de programación virtualizado Permite la ejecución de programas Java ejecutables multiplataforma Programación concurrente

Más detalles

CAPÍTULO 4: EXCEPCIONES EN JAVA

CAPÍTULO 4: EXCEPCIONES EN JAVA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA CAPÍTULO 4: EXCEPCIONES EN JAVA 1 CONTENIDOS TEMA 4: Excepciones en Java. 4.1 INTRODUCCIÓN 4.2 MANEJO DE EXCEPCIONES EN JAVA 4.3 TIPOS DE EXCEPCIONES 4.3.1 Excepciones

Más detalles

Programación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas

Programación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas Programación concurrente en Java. Breve introducción Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas Concurrencia en Java Hilos de ejecución Clase Thread e interfaz Runnable Pausas Interrupciones

Más detalles

Apuntes de Java. Tema 6: Excepciones. Uploaded by Ingteleco

Apuntes de Java. Tema 6: Excepciones. Uploaded by Ingteleco Apuntes de Java Tema 6: Excepciones Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por

Más detalles

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 3. Herencia y Polimorfismo Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad

Más detalles

EXCLUSIÓN MUTUA ENTRE HILOS. TEMA 5: Control de la Concurrencia en Java (API Estándar) Sintaxis para Bloques de Código Sincronizado

EXCLUSIÓN MUTUA ENTRE HILOS. TEMA 5: Control de la Concurrencia en Java (API Estándar) Sintaxis para Bloques de Código Sincronizado TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

Programación Concurrente Recopilación de teoría referente a la materia

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a

Más detalles

Lenguaje Java. Sesión 3: Tratamiento de errores. Experto Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Lenguaje Java. Sesión 3: Tratamiento de errores. Experto Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles Lenguaje Java Sesión 3: Tratamiento de errores 2012-2013 Depto. Ciencia de la Computación e IA Índice Excepciones Captura de excepciones Propagación de excepciones Nested exceptions Errores en tiempo de

Más detalles

Apuntes de Java. Tema 10: Threads. Uploaded by Ingteleco

Apuntes de Java. Tema 10: Threads. Uploaded by Ingteleco Apuntes de Java Tema 10: Threads Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por email

Más detalles

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED) Examen de Ejemplo Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED) Parte Teórica (2,5 puntos). La respuesta correcta se indica

Más detalles

Guillermo Román Díez

Guillermo Román Díez Concurrencia Creación de Procesos en Java Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia

Más detalles

Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 7 - Excepciones en Java Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Introducción. Las excepciones en Java están destinadas, al igual que en el resto de los lenguajes

Más detalles

Concurrencia Monitores. Guillermo Román Díez

Concurrencia Monitores. Guillermo Román Díez Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de

Más detalles

Módulo 11: MANEJO DE EXCEPCIONES 11-1

Módulo 11: MANEJO DE EXCEPCIONES 11-1 Módulo 11: MANEJO DE EXCEPCIONES 11-1 SUMARIO MANEJO DE EXCEPCIONES 1 SUMARIO 2 11.1. INTRODUCCIÓN 3 11.1.1. Tratamiento de Errores vs. Tratamiento de Excepciones 3 11.1.2. Qué ocurre cuando se produce

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Universidad Autónoma de Baja California Facultad de Ingeniería Apuntes de Programación Orientada a Objetos I

Universidad Autónoma de Baja California Facultad de Ingeniería Apuntes de Programación Orientada a Objetos I Hilos Universidad Autónoma de Baja California Hasta el momento los programas que se han estado manejando en el curso han sido secuenciales. Esto es, inician en un punto y continuan su ejecución de manera

Más detalles

Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto

Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto Java y multiprogramación sobre red Sistemas Distribuidos ITInformática (UVA) César Llamas Bello 2003 Índice Multienhebrado en Java Un toque de sincronización Transporte en Java Ejemplo conjunto 26/02/2003

Más detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Java: control de excepciones

Java: control de excepciones Java: control de excepciones Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Introducción v Una excepción es un evento que ocurre

Más detalles

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; } PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)

Más detalles

Unidad 3 Sistemas con memoria común

Unidad 3 Sistemas con memoria común Unidad 3 Sistemas con memoria común Definiciones Por concurrencia se entiende la existencia de varias actividades simultáneas o paralelas. La concurrencia de procesos puede verse como la ejecución simultánea

Más detalles

Programación concurrente

Programación concurrente Programación concurrente Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Programación concurrente

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends

Más detalles

UNIDAD III.- Programación Concurrente

UNIDAD III.- Programación Concurrente UNIDAD III.- Programación Concurrente Sincronización Todo thread tiene una prioridad. Un thread hereda su prioridad, cuyo valor está entre 1 y 10 La prioridad puede modificarse con los métodos: setpriority()

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación: Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar

Más detalles

7. Otras sentencias Sentencia break. 84 A. García-Beltrán y J.M. Arranz

7. Otras sentencias Sentencia break. 84 A. García-Beltrán y J.M. Arranz 84 A. García-Beltrán y J.M. Arranz 7. Otras sentencias Objetivos: a) Describir el funcionamiento de las otras sentencias de control (break, continue y try-catch) b) Interpretar el resultado de una secuencia

Más detalles

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 EXCEPCIONES. Ing. Bruno López Takeyas, M.C.

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 EXCEPCIONES. Ing. Bruno López Takeyas, M.C. CAPÍTULO 8 EXCEPCIONES 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Cómo se controlan los posibles errores que ocurran durante la ejecución de una aplicación? Un programador, puede

Más detalles

fundamentos de programación (unidad 7) herencia y relaciones entre clases

fundamentos de programación (unidad 7) herencia y relaciones entre clases fundamentos de programación (unidad 7) herencia y relaciones entre clases Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

Tema 14: Excepciones

Tema 14: Excepciones Tema 14: Excepciones 0 Excepción Definición Las Excepciones son objetos que definen el estado de la aplicación cuando se producen situaciones anómalas. Son un mecanismo usado por muchos lenguajes de programación

Más detalles

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS

Más detalles

Concurrencia en Android LSUB, GYSC, URJC

Concurrencia en Android LSUB, GYSC, URJC Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo

Más detalles

Soluciones al Examen de Fundamentos de Computadores y Lenguajes

Soluciones al Examen de Fundamentos de Computadores y Lenguajes Soluciones al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Junio 2005 1) Escribir una clase con un atributo privado que sea un array de

Más detalles

Si bien hay gran cantidad de excepciones, todas derivan de la clase Exception, además de las excepciones ya manejadas, se pueden crear propias.

Si bien hay gran cantidad de excepciones, todas derivan de la clase Exception, además de las excepciones ya manejadas, se pueden crear propias. Práctica No. 6. Manejo de Excepciones Java permite el manejo de excepciones, esto permite que cuando ocurra algún error en tiempo de ejecución, se pueda evitar que el programa finalice de manera incorrecta.

Más detalles

Fundamentos de Programación

Fundamentos de Programación Fundamentos de Programación Excep5on errores en 5empo de ejecución 1.12.2009 José A. Mañas Dpto. de Ingeniería de Sistemas Telemá@cos hcp://www.lab.dit.upm.es/~fprg/ excepciones una

Más detalles

Java: Programación Multithread

Java: Programación Multithread Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto

Más detalles

Colas. 5.1 Implementación

Colas. 5.1 Implementación Capítulo 5 Colas Las colas al igual que las pilas son un tipo especial de listas en las cuales los elementos se insertan por un lado y se eliminan por el otro. Es decir se sacan en el mismo orden en que

Más detalles

CAPÍTULO 2. PROCESOS VS. HILOS

CAPÍTULO 2. PROCESOS VS. HILOS CAPÍTULO 2. PROCESOS VS. HILOS El objetivo de este capítulo es el de discutir con un poco más de profundidad todo lo relacionado con el concepto de proceso que sea relevante para el estudio de la programación

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

INF 473 Desarrollo de Aplicaciones en Java

INF 473 Desarrollo de Aplicaciones en Java INF 473 Desarrollo de Aplicaciones en Java Sección V Otras características de Java Prof. José Miguel Rubio jose.rubio.l@ucv.cl jrubio@inf.ucv.cl PUCV Marzo 2008 1 Paquetes Conjunto de clases definidas

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Practica de Laboratorio No. 2 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

CAPÍTULO 3. PROCESOS VS. HILOS

CAPÍTULO 3. PROCESOS VS. HILOS CAPÍTULO 3. PROCESOS VS. HILOS 3.1 Primitivas de sincronización en Java Java no tiene semáforos como primitivas de sincronización. Sin embargo, proporciona otras primitivas diferentes con las cuales sí

Más detalles

dit UPM Tema 2: Concurrencia /threads (java) Análisis y diseño de software José A. Mañas

dit UPM Tema 2: Concurrencia /threads (java) Análisis y diseño de software José A. Mañas Análisis y diseño de software dit UPM Tema 2: Concurrencia /threads (java) José A. Mañas 11.3.2018 referencias The Java tutorials: Concurrency Oracle Java Threads Scott Oaks & Henry Wong O'Reilly Media;

Más detalles

Primitivas de Sincronización

Primitivas de Sincronización Primitivas de Sincronización JUAN CARLOS CONDE RAMÍREZ DISTRIBUTED COMPUTING Introducción Todas las soluciones previas al problema de mutex fueron un desperdicio de algún modo: Si un proceso es incapaz

Más detalles

Asignatura. Taller de Computación VI. Módulo VI Threads

Asignatura. Taller de Computación VI. Módulo VI Threads Asignatura Módulo VI Threads Elaboración Hugo Sanoguera, Fabián Gentile Este material pertenece a la materia, de la Carrera de Analista de Sistemas de Computación del INSTITUTO DE TECNOLOGÍA ORT. Todos

Más detalles

Programación en Java. Instructor:

Programación en Java. Instructor: Instructor: Lección 5: Manejo de Excepciones 1. Creando Excepciones 2. El estatuto throw 3. La capsula throws 4. Try, catch y finally 5. Cuando usar excepciones Excepciones Una excepción es un problema

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona

Más detalles

Prueba objetiva 2 - Clave a

Prueba objetiva 2 - Clave a Apellidos: Nombre: Matrícula: Normas Prueba objetiva 2 - Clave a Concurrencia 2010-2011 - Primer semestre Lenguajes, Sistemas Informáticos e Ingeniería de Software Este es un cuestionario que consta de

Más detalles

Excepciones e hilos. Acceso a la red - Ejercicios

Excepciones e hilos. Acceso a la red - Ejercicios Excepciones e hilos. Acceso a la red - Ejercicios Índice 1 Captura de excepciones (*)... 2 2 Lanzamiento de excepciones...2 3 Chat para el móvil... 3 1. Captura de excepciones (*) En el proyecto java-excepciones

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

2. Tratamiento de objetos con JAVA

2. Tratamiento de objetos con JAVA 2. Tratamiento de objetos con JAVA David Contreras Bárcena (ETSI) - Comillas 71 2.1 Ciclo de Vida de los Objetos Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto

Más detalles