Programación concurrente en java
Diseño de Sistemas Operativos
Facultad de Informática
Juan Pavón Mestras
Dep. Sistemas Informáticos y Programación
Universidad Complutense MadridConcurrencia
n
En el mundo real, muchas cosas pasan a la vez
n
n
Con varias computadoras se pueden ejecutar varios programas
a la vez
Con una sola computadora se puede simular la ejecución
paralelade varias actividades:
? múltiples flujos de ejecución (multithreading)
comparten el uso de un procesador
n
Java soporta la ejecución paralela de varios threads (hilos
de ejecución)
n
Losthreads en una misma máquina virtual comparten recursos
n
Los threads en varias máquinas virtuales necesitan de
mecanismos de comunicación para compartir información
• por ejemplo, memoria© Juan Pavón Mestras, UCM 2001
Programación concurrente con Java
2
1
Concurrencia
n
Para qué:
n
n
n
n
n
Mejorar la disponibilidad y eficiencia
Modelar tareas, objetosautónomos, animación
Paralelismo: múltiples procesadores, simultanear E/S
Protección: aislar actividades en hilos de ejecución
Ejemplos:
•
•
•
•
n
Tareas con mucha E/S: acceso a sitios web,bases de datos
Interfaces gráficas de usuario: gestión de eventos
Demonios con múltiples peticiones de servicio simultáneas
Simulación
Con cuidado:
n
n
Complejidad: seguridad, viveza,composición
Sobrecarga: Mayor uso de recursos
© Juan Pavón Mestras, UCM 2001
Programación concurrente con Java
3
Programación concurrente OO
n
La concurrencia es natural en orientación aobjetos
n
n
Ya Simula67 soportaba concurrencia
Diferencias con otros modelos de concurrencia
n
Programación OO secuencial
• Tiene más importancia la seguridad y la viveza
• Pero tambiénusa y extiende patrones de diseño comunes
n
Programación orientada a eventos
• Permite que pueda haber múltiples eventos a la vez
• Pero usa y extiende estrategias de mensajería
n...
Regístrate para leer el documento completo.