Analysis of the inherent problems to concurrent programming in its two principal categories, shared memory and message passing. Primitives for concurrent programming. Interaction patterns in distributed programming. Languages and formalisms for the specification and implementation of concurrent processes.
Using synchronized to synchronize concurrent threads.
Using Semaphore as tool to synchronize concurrent execution of threads.
Using Monitors as tool to synchronize concurrent execution of threads.
Using Monitors as tool to synchronize concurrent execution of threads.
Introduction to the notion of reentrant locks.
Introduction to some of the concurrency utilities included in the Java standard editions (versions 5 and 7)
Introduction to remote method invocation (RMI) in Java.
Introduction to message passing using the Erlang language.
========================================
Estudio de los problemas inherentes a la programación concurrente en sus dos modalidades, memoria compartida y paso de mensajes. Primitivas para la programación concurrente. Esquemas de interacción en programación distribuida. Lenguajes y formalismos para la especificación e implementación de procesos concurrentes.
Utilización de synchronized para sincronizar hilos concurrentes.
Utilización de semáforos como herramienta para sincronizar la ejecución concurrente de hilos.
Utilización de monitores como herramienta para sincronizar la ejecución concurrente de hilos.
Utilización de monitores como herramienta para sincronizar la ejecución concurrente de hilos.
Introducción a la noción de cerrojos reentrantes.
Introducción a algunas de las utilidades de concurrencia incluidas en las ediciones estándares de Java en sus versiones 5 y 7.
Introducción a la invocación de métodos remotos (RMI) en Java.
Introducción a la programación concurrente mediante paso de mensajes usando el lenguaje Erlang.