Threads LSUB. 30 de marzo de 2016 GSYC
|
|
- Francisca Correa Castilla
- hace 6 años
- Vistas:
Transcripción
1 Threads LSUB GSYC 30 de marzo de 2016
2 (cc) 2015 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada (by-nc-nd). Para obtener la licencia completa, véase También puede solicitarse a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Las imágenes de terceros conservan su licencia original.
3 Threads Concurrencia? Un thread es un hilo de ejecución. Una aplicación tiene al menos un thread. Los threads de Java son expulsivos. La correspondencia entre threads y procesos del OS depende de la implementación. Antes de usar algo desde distintos threads debemos asegurarnos de que es thread-safe.
4 Thread La clase Thread proporciona la abstracción. Hay dos formas de crear una instancia de Thread: Crear una clase que derive de la clase Thread. Crear una clase que implemente la interfaz Runnable. Se recomienda usar esta aproximación: separar el trabajo (tu clase Runnable) del trabajador (la clase Thread). Además, puedes ser Runnable y extender otra clase distinta a Thread. El thread arranca cuando se invoca su método start().
5 Clase con interfaz Runnable p u b l i c c l a s s Tweeter implements Runnable O v e r r i d e p u b l i c v o i d run ( ) { f o r ( i n t i = 0 ; i < 1 0 ; i ++) System. out. p r i n t l n ( Thread s a y s t w e e e e e t!!! ) ; p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { f o r ( i n t i = 0 ; i < 1 0 ; i ++) ( new Thread ( new Tweeter ( ) ) ). s t a r t ( ) ;
6 Clase Thread anónima p u b l i c c l a s s S e r v i d o r { p u b l i c v o i d a t e n d e r ( ) { f i n a l Socket sk ; //... a c e p t a r l l a m a d a en sk... new Thread ( ) { p u b l i c v o i d run ( ) { s e r v i r C l i e n t e ( sk ) ; ;. s t a r t ( ) ; p r o t e c t e d v o i d s e r v i r C l i e n t e ( Socket sk ) { //...
7 Thread Thread proporciona varios métodos de clase interesantes: currentthread(): retorna la referencia al thread que está ejecutando. activecount(): retorna el número actual de threads activos. dumpstack(): vuelca la pila del thread actual en la salida de errores. sleep(int ms): causa que el thread actual se bloquee durante un tiempo. yield(): causa que el thread actual ceda su cuanto a otro thread. System. out. p r i n t l n ( Thread + Thread. c u r r e n t T h r e a d ( ). g e t I d ( ) + S t a t e + Thread. c u r r e n t T h r e a d ( ). g e t S t a t e ( ) ) ;
8 Interrupciones Una interrupción es una indicación para que el thread deje de hacer lo que está haciendo para hacer otra cosa. No es aconsejable usar interrupciones! Normalmente los threads reaccionan acabando su ejecución, retornando del método run().
9 Interrupciones Algunos métodos elevan una InterruptedException si se interrumpe el thread mientras que ejecutan (p. ej. sleep()). Otros métodos bloqueantes no levantan la excepción. Se puede comprobar si el thread ha sido interrumpido invocando Thread.interrupted() si no se invocan métodos que eleven una InterruptedException. Ojo! Thread.interrupted() comprueba si ha sido interrumpido pero limpia el estado de interrupción si devuelve true.
10 Código p u b l i c v o i d run ( ) {... t r y {... Thread. s l e e p ( ) ;... catch ( I n t e r r u p t e d E x c e p t i o n e ) { // E l t h r e a d ha s i d o i n t e r r u m p i d o m i e n t r a s dormia // y no ha dormido e l tiempo deseado. Retornamos // de run ( ) System. e r r. p r i n t l n ( Thread + Thread. c u r r e n t T h r e a d ( ). g e t I d ( ) + i n t e r r u p t e d, e x i t i n g. ) ; r e t u r n ;...
11 Código t r y {... / S i e l t h r e a d ha s i d o i n t e r r u m p i d o p e r o no ha s a l t a d o l a e x c e p c i o n, dejamos que l o maneje e l c a t c h l e v a n t a n d o n o s o t r o s mismos l a e x c e p c i o n! i n t e r r u p t e d ( ) l i m p i a e l estado, p e r o e s t e throw l o pondra de nuevo. / i f ( Thread. i n t e r r u p t e d ( ) ) throw new I n t e r r u p t e d E x c e p t i o n ( ) ;... catch ( I n t e r r u p t e d E x c e p t i o n e ) {...
12 Join Se puede esperar a que un thread muera con join(). Se le puede pasar un tiempo de espera. Thread t = new Thread ( new Worker ( ) ) ; t. s t a r t ( ) ;... t. j o i n ( ) ;
13 Sincronización Si dos threads acceden al mismo recurso compartido sin estar sincronizados, tendremos una condición de carrera. Java proporciona dos mecanismos básicos de sincronización: Métodos synchronized. Sentencias synchronized.
14 Métodos synchronized Es un monitor. No es posible que dos invocaciones a métodos synchronized del mismo objeto sean concurrentes. Si un thread está ejecutando un método synchronized, cualquier otro thread que intente invocar un método synchronized de ese objeto se queda bloqueado hasta que pueda proceder. Los constructores no pueden ser synchronized (no tiene sentido).
15 Métodos synchronized Internamente está implementado mediante un lock (intrinsic lock o monitor lock). Toda instancia tiene asociada un monitor lock. Las clases también tienen su propio lock para sincronizar el acceso a los miembros de clase (métodos estáticos synchronized, etc.). Un thread que necesite acceso exclusivo a la instancia necesita adquirir el lock y después de acceder necesita soltar el lock. Al invocar un método synchronized se adquiere el lock automáticamente y se suelta al finalizar la invocación (por un return o por una excepción). Es un lock re-entrante: desde un método synchronized se puede invocar a otro método synchronized.
16 Código p u b l i c c l a s s Counter{ p r i v a t e i n t c ; p u b l i c s y n c h r o n i z e d i n t i n c r ( ) { r e t u r n ++c ; public c l a s s Tweeter implements Runnable { p r i v a t e Counter counter ; p u b l i c Tweeter ( Counter c ){ c o u n t e r = c O v e r r i d e p u b l i c v o i d run ( ) { f o r ( i n t i = 0 ; i < 1 0 ; i ++){ System. out. p r i n t l n ( Thread + Thread. c u r r e n t T h r e a d ( ). g e t I d ( ) + s a y s t w e e e e e t # + c o u n t e r. i n c r ( ) +!!! ) ;
17 Sentencias synchronized Se debe especificar el objeto del que se quiere adquirir el lock. Un método synchronized es lo mismo que poner synchronized(this) alrededor de todo el método. p u b l i c v o i d i n c r C o u n t e r ( S t r i n g name ) { s y n c h r o n i z e d ( t h i s ) { count++;
18 wait() wait() bloquea el thread, saliendo del monitor. Siempre se debe comprobar la condición antes de continuar! // d e n t r o de un metodo s y n c h r o n i z e d de l a c l a s e S e r v : // un t h r e a d e s p e r a a que l l e g u e un c l i e n t e w h i l e ( n c l i e n t s == 0) { t r y { w a i t ( ) ; catch ( I n t e r r u p t e d E x c e p t i o n e ) {...
19 notify() notify() despierta a un thread (cualquiera) de los que están bloqueados en un wait, que competirá por coger el lock del monitor. notifyall() despierta a todos. Sólo debe invocarse desde dentro del monitor. // d e n t r o de o t r o metodo s y n c h r o n i z e d de l a c l a s e S e r v : // l l e g a un c l i e n t e y s e d e s p i e r t a a un t h r e a d // para que l o a t i e n d a a d d C l i e n t ( c ) ; n c l i e n t s ++; n o t i f y A l l ( ) ;
20 Volatile Las variables volatile se leen/escriben de forma atómica. La escritura de una variable volatile fuerza una relación pasa-antes-que: si un thread ve la variable modificada, ve el estado generado por cualquier acción previa del thread que la modificó. Ojo: esto no nos protege de la mayoría de las condiciones de carrera. p u b l i c c l a s s Counter { p r i v a t e v o l a t i l e l o n g count = 0 ; p u b l i c v o i d i n c r e m e n t ( ) { count++; // CONDICION DE CARRERA!!!
21 Executor El paquete java.util.concurrent ofrece la interfaz Executor: Es una interfaz para lanzar nuevas tareas y evitar el idiom para crear un thread. Sólo tiene un método, execute(). Los detalles de la ejecución dependen de la implementación concreta de la interfaz (ejecución inmediata, esperar un worker, etc.). No hay forma de obtener el resultado de la tarea. Estas dos sentencias pueden ser equivalentes: ( new Thread ( r ) ). s t a r t ( ) ; e. e x e c u t e ( r ) ;
22 ExecutorService Extiende la interfaz Executor con submit() que permite pasar objetos que implementen Runnable. Retorna un objeto Future que sirve para consultar y controlar el progreso de la tarea. shutdown() impide ejecutar nuevas tareas, pero deja que las que están en marcha puedan acabar. shutdownnow() acaba las tareas en marcha y retorna una lista de tareas que estaban esperando para ejecutar. No da garantías sobre lo que pasará (si terminarán, se pararán, etc.). awaittermination() se bloquea hasta que termine el proceso de shutdown o salte el timeout. La clase Executors proporciona factory methods para los distintos ExecutorServices.
23 ExecutorService E x e c u t o r S e r v i c e p o o l = E x e c u t o r s. newfixedthreadpool ( 1 0 ) ;... p o o l. e x e c u t e ( new C l i e n t M g r ( ) ) ;... p o o l. shutdown ( ) ; i f (! p o o l. a w a i t T e r m i n a t i o n ( 6 0, TimeUnit. SECONDS) ) { p o o l. shutdownnow ( ) ; i f (! p o o l. a w a i t T e r m i n a t i o n ( 6 0, TimeUnit. SECONDS) ) System. e r r. p r i n t l n ( Pool d i d not t e r m i n a t e ) ;
24 Futures El método submit() permite pasar al executor una clase que implemente Runnable. Retorna un objeto Future que sirve para consultar y controlar el progreso de la tarea. El método get() del Future se bloquea y retorna null cuando la tarea ha terminado.
25 ExecutorService E x e c u t o r S e r v i c e p o o l = E x e c u t o r s. newfixedthreadpool ( 1 0 ) ; Future <?> f u t u r e = p o o l. submit ( new Runnable ( ) { p u b l i c v o i d run ( ) { t r y { Thread. s l e e p ( ) ; catch ( I n t e r r u p t e d E x c e p t i o n e ) { e. p r i n t S t a c k T r a c e ( ) ; ) ; i f ( f u t u r e. g e t ( ) == n u l l ) System. out. p r i n t l n ( Termino ok ) ;
26 ExecutorService El método submit() también permite pasar objetos que implementen Callable. Un objeto Callable debe implementar un método call() que retorna un valor. El valor retornado por call() se obtiene con el método get() del objeto Future.
27 ExecutorService E x e c u t o r S e r v i c e p o o l = E x e c u t o r s. newfixedthreadpool ( 1 0 ) ; Future <S t r i n g > f u t u r e = p o o l. submit ( new C a l l a b l e <S t r i n g >(){ p u b l i c S t r i n g c a l l ( ) throws E x c e p t i o n { System. out. p r i n t l n ( Hola!! ) ; r e t u r n He t e r m i n a d o b i e n!! ; ) ; System. out. p r i n t l n ( Cadena de s a l i d a de l a t a r e a : + f u t u r e. g e t ( ) ) ;
28 Colecciones concurrentes El paquete java.util.concurrent proporciona clases con estas interfaces: BlockingQueue: FIFOs bloqueantes, ya las conocemos. ConcurrentMap: Diccionarios (nombre-valor) con operaciones atómicas.
29 BlockingQueue Es una cola para comunicar procesos. Ampĺıa la interfaz Queue con operaciones bloqueantes.
30 BlockingQueue p u b l i c i n t e r f a c e BlockingQueue<E> extends Queue<E> { boolean put (E e ) ; // como add, p e r o b l o q u e a E t a k e ( ) ; // como e l e m e n t ( ), p e r o b l o q u e a
31 BlockingQueue Bloqueantes sin timeout: put(e): inserta un elemento. take(): elimina la cabeza y la devuelve. Bloqueantes con timeout: offer(e, time, unit): inserta un elemento. poll(time, unit): elimina la cabeza y la devuelve.
32 Thread-safeness Podemos crear una colección envuelta con decorators para hacerla thread-safe. Para ello podemos usar los métodos de Collections synchronizedset o synchronizedmap p u b l i c s t a t i c <T> Set<T> s y n c h r o n i z e d S e t ( Set<T> s ) ; Por ejemplo: Set s = C o l l e c t i o n s. s y n c h r o n i z e d S e t ( new HashSet ( ) ) ;
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 detallesIntroducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Más detallesProgramació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 detallesColecciones de Java LSUB. 17 de febrero de 2016 GSYC
Colecciones de Java LSUB GSYC 17 de febrero de 2016 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Más detallesNormalmente, 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 detallesIntroducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesProgramació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 detallesHilos. Índice. Copyright 2012-13 Dept. Ciencia de la Computación e IA All rights reserved.
Índice 1 Creación de hilos... 2 2 Ciclo de vida y prioridades...3 2.1 Prioridades de los hilos... 4 2.2 Interrupción de un hilo...4 3 Sincronización de hilos... 5 3.1 Sincronización reentrante...6 4 Bloques
Más detallesConcurrencia en Java
Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones
Más detallesMONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar
MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un
Más detallesProgramació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 detallesFederico 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 detallesTEMA 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 detalles1 HILOS (THREADS) EN JAVA
1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los
Más detallesThreads. 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 detallesRed LSUB. 4 de marzo de 2015 GSYC
Red LSUB GSYC 4 de marzo de 2015 (cc) 2015 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesJava: 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 detallesOtras formas de Sincronización en Java
75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Otras formas de Sincronización en Java java.util.concurrent Class Exchanger
Más detallesObject 1. Threads en Java
Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las
Más detallesHebras y Sincronización en Java
Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz
Más detallesTest : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Más detallesMOM LSUB. 3 de abril de 2013 GSYC
MOM LSUB GSYC 3 de abril de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesLenguaje de programación con JAVA
Pág. N. 1 Lenguaje de programación con JAVA Familia: Editorial: Autor: Tecnología de la información y computación Macro Eric Gustavo Coronel Castillo ISBN: 978-612-304-288-2 N. de páginas: 360 Edición:
Más detallesConcurrencia 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(THREADS) Ing. Laura Sandoval Montaño, Ing. Manuel Enrique Castañeda Castañeda PAPIME 104911
(THREADS) HILOS JAVA La Máquina Virtual Java (JVM) es un sistema multihilo. La JVM gestiona todos los detalles, asignación de tiempos de ejecución, prioridades, etc., de forma similar a como gestiona un
Más detalles75-62 Técnicas de Programación Concurrente II 2004 java Threads
75-62 Técnicas de Programación Concurrente II 2004 java Threads FIUBA Ing. Osvaldo Clúa Bibliografía: tutorial de Java en http://java.sun.com Un buen libro (algo teórico) es Garg: Concurrent and Distributed
Más detallesJava Vademécum /concurrencia
Dept. de Ingeniería de Sistemas Telemáticos E.T.S.I. de Telecomunicación Universidad Politécnica Madrid Java Vademécum /concurrencia José A. Mañas 2 de mayo de 2014 vademécum /concurrencia página 1 Índice
Más detallesUNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Sockets para servidor Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos
Más detallesTEMA 6: API Java para Concurrencia de Alto Nivel
TEMA 6: API Java para Concurrencia de Alto Nivel CONTENIDO API Java 5 de Control de la Concurrencia Clases para Gestión de Variables Atómicas Clase java.concurrent.util.concurrent.semaphore Clase java.concurrent.util.concurrent.cyclicbarrier
Más detallesMessage Oriented Middleware: Java JMS
Message Oriented Middleware: Java JMS LSUB GSYC 29 de abril de 2015 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento
Más detallesConcurrencia en Java
Concurrencia en Java Concurrencia en Java Con un único procesador, solamente puede ejecutarse una instrucción en un instante de tiempo. La frase anterior parece una perogrullada, pero no lo es. Posiblemente
Más detallesTutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.
Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. olopez@uniandino.com.co DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado
Más detallesProgramación Concurrente. Curso Java 2012, 2013 Juan Manuel Fernández Peña
Programación Concurrente Curso Java 2012, 2013 Juan Manuel Fernández Peña Programación secuencial Hasta ahora se ha trabajado con programas secuenciales Se ejecuta paso a paso Son deterministas: si se
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesAnexo. Control de errores
Anexo. Control de errores Tipos de errores Los errores en un programa o algoritmo se pueden clasificar de la siguiente manera Errores de compilación Los errores de compilación no permiten la ejecución
Más detallesMultitarea En Swing. Varios hilos trabajadores, también conocidos como hilos en segundo plano.
Multitarea En Swing 1.- Introducción. En las aplicaciones Java que usan Swing es particularmente importante manejar con cuidado la concurrencia. Una aplicación Java que usa Swing y que está bien desarrollada
Más detallesProgramación Concurrente en Java
Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan
Más detallesSUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque
Más detallesNotas de clase. Threads
Licenciatura en Ciencias de la Computación, Facultad de Ciencias, UNAM. Computación concurrente. Profesor: Carlos Zerón Martínez. Ayudante: Manuel Ignacio Castillo López. Notas de clase Threads Introducción
Más detallesProgramación Concurrente y de Tiempo Real Guión de prácticas 8: Monitores en Java (API. Natalia Partera Jaime Alumna colaboradora de la asignatura
Programación Concurrente y de Tiempo Real Guión de prácticas 8: Monitores en Java (API estándar) Natalia Partera Jaime Alumna colaboradora de la asignatura Índice 1. Introducción 2 2. Monitores 2 2.1.
Más detallesConceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Más detallesSistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas
Más detallesPatrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos
Más detallesT5-multithreading. Indice
T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2
Más detallesCURSO DE PREPARACIÓN PARA LA CERTIFICACIÓN COMO PROGRAMADOR DE JAVA J2SE 5.0 DE SUN
CURSO DE PREPARACIÓN PARA LA CERTIFICACIÓN COMO PROGRAMADOR DE JAVA J2SE 5.0 DE SUN CONTENIDO 1 Principios de Java Breve historia. Características Orientado a Objetos Distribuido Simple Multihilo (Multithreaded)
Más detallesAplicaciones Concurrentes
PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes
Más detallesLenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2
Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3
Más detallesINSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO
INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 01-II 1. DATOS GENERALES SÍLABO UNIDAD DIDÁCTICA : LENGUAJES Y HERRAMIENTAS DE DESARROLLO DE SOFTWARE MÓDULO : DESARROLLO DE SOFTWARE
Más detallesTema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones
Más detallesTEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
Más detallesModelos de programación paralela y concurrente
Modelos de programación paralela y concurrente J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo
Más detalles1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
Más detallesLA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesINF 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 detallesPROGRAMACION CONCURRENTE Y DISTRIBUIDA. III.3 Concurrencia con Java: Sincronización
PROGRAMACION CONCURRENTE Y DISTRIBUIDA III.3 Concurrencia con Java: Sincronización J.M. Drake L.Barros 1 Recursos de Java para sincronizar threads Todos los objetos tienen un bloqueo asociado, lock o cerrojo,
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Más detallesMultitarea en Java. Rafa Caballero - UCM
Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single
Más detallesDerechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
Más detallesIntroducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.
Más detallesTema 3. Programación orientada a objetos en Java (Parte 1)
Programación en Java Tema 3. Programación orientada a objetos en Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Clases y objetos (I) Clase Cojunto de datos (atributos) y funciones (métodos)
Más detallesLABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)
LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I) SEPARACIÓN DEL NIVEL DE PRESENTACIÓN Y LÓGICA DE NEGOCIO MEDIANTE EL USO DE INTERFACES JAVA 1. OBJETIVO Los objetivos de este laboratorio
Más detallesGUIA No 5. CREACIÓN DE SubVI s
GUIA No 5 CREACIÓN DE SubVI s Una característica importante de LabView es el manejo de jerarquías y el poder utilizar fácilmente un programa anterior como un módulo de otro cualquiera. Cuando un VI es
Más detallesÍNDICE. PRÓLOGO... 21 Parte I... 22 Parte II... 23 Apéndices... 23
ÍNDICE PRÓLOGO... 21 Parte I... 22 Parte II... 23 Apéndices... 23 CAPÍTULO 1. INTRODUCCIÓN A JAVA... 25 1.1 CARACTERÍSTICAS DE JAVA... 26 1.2 LA MÁQUINA VIRTUAL JAVA (JVM)... 27 1.3 EDICIONES JAVA... 28
Más detallesINTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)
APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Más detallesProgramación en Java. Programación en OO
Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,
Más detallesLABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)
LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I) SEPARACIÓN DEL NIVEL DE PRESENTACIÓN Y LÓGICA DE NEGOCIO MEDIANTE EL USO DE INTERFACES JAVA 1. OBJETIVO Los objetivos de este laboratorio
Más detallesINDICE Prefacio 1. Fundamentos de Java 2. Introducción a los tipos de datos y operadores
INDICE Prefacio XVII 1. Fundamentos de Java 1 Los orígenes de Java 2 Como se relaciona Java con C y C++ 4 Contribución de Java a Internet Los Apples de Java y aplicaciones 6 Seguridad Portabilidad 7 La
Más detallesConcurrencia en.net David Jesús Horat Flotats
Concurrencia en.net David Jesús Horat Flotats ÍNDICE 1. Introducción n a.net 2. Sincronización n en.net 2.1 Contextos sincronizados 2.2 Método M Synchronized 2.3 Regiones de código c sincronizado 2.4 Sincronización
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Más detallesManipulación de procesos
Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama
Más detallesSockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.
Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente
Más detallesHilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php
Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy
Más detallesJava nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.
Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución
Más detallesDiseño de sistemas concurrentes
Diseño de sistemas concurrentes Manuel Carro Universidad Politécnica de Madrid Necesidad de diseño Hasta ahora, problemas ya cerrados: Número de procesos, recursos Código de procesos Especificación de
Más detallesSistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
Más detallesde Gran Canaria Centro de Tecnología Médica Programación Concurrente
Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Angel García Beltrán y José María Arranz Santamaría Sección de Publicaciones Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid
Más detallesUNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una
Más detallesTema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Más detallesSistemas Operativos. Daniel Rúa Madrid
Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre
Más detallesCONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín
CONCURRENCIA EN JAVA Diseño de Sistemas Operativos Avanzados 2000/2001 Pedro Pablo Gómez Martín Concurrencia en Java 1 ÍNDICE ÍNDICE... 1 INTRODUCCIÓN... 3 CREAR UNA NUEVA HEBRA... 3 FINALIZACIÓN... 5
Más detallesOffice 365 Pro Plus ACTVACIÓN EN EQUIPOS COMPARTIDOS
Office 365 Pro Plus ACTVACIÓN EN EQUIPOS COMPARTIDOS La activación en equipos compartidos permite implementar Office 365 ProPlus en un equipo de la organización a los que varios usuarios tienen acceso.
Más detallesHerramientas Concurrentes en JAVA
Herramientas Concurrentes en JAVA David Jesús Horat Flotats ÍNDICE 1. Introducción n a Java 2. Herramientas Concurrentes en Java 3. Lectores Escritores (2º) 4. Filósofos comensales 5. Chat usando RMI 6.
Más detallesConcurrencia y paralelismo
Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.
Más detallesProcesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Más detallesMonitores Ing. Iván Medrano Valencia
Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática Programación Concurrente y Distribuida Práctica 5 1. OBJETIVO. Ing. Iván Medrano Valencia En esta práctica, comprobaremos
Más detallesdit Real-Time Java Sistemas de Tiempo Real José F. Ruiz DIT/UPM UPM
Sistemas de Tiempo Real Real-Time Java José F. Ruiz DIT/ Índice Introducción Objetivos Áreas mejoradas en la especificación de tiempo real Manejo del tiempo Conclusiones Referencias 10/01/2002 2001-2002
Más detallesFundamentos de Ordenadores. Depurar programas usando Nemiver
Fundamentos de Ordenadores Depurar programas usando Nemiver Departamento de Arquitectura de Computadores Autor: Mario Macias. Fecha de elaboración: 16/10/2015 1 Manual básico Nemiver Nemiver es un sencillo
Más detallesModulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
Más detallesTema 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 detallesGUIs en Java (3) Jose M. Peña
GUIs en Java (3) Jose M. Peña e-mail: jmpena@fi.upm.es Problemática del desarrollo de grandes aplicaciones El desarrollo de GUI puede, fácilmente, convertirse en un proceso caótico. La dinámica del interfaz
Más detallesTema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
Más detallesLección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos
Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el
Más detallesProgramació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 detallesTema 2: Programas y procesos
Tema 2: Programas y procesos Enrique Soriano Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 15 de febrero de 2010 (cc) 2010 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados.
Más detallesEXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Más detallesJava y JVM: programación concurrente
Java y JVM: programación concurrente Adolfo López Díaz Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica Resumen: El lenguaje de programación Java proporciona, sin necesidad
Más detallesJava RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.
Más detallesClases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos
Más detallesSistemas Distribuidos. Soporte de Sistemas Operativos
Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Tareas principales de un SO: Administrar recursos Proveer abstracciones de los
Más detalles