La asignatura de Programación de servicios y procesos recoge los fundamentos de la creación y gestión de procesos, la programación multihilo, así como la programación de comunicaciones y servicios en red.
Los programas contenidos se desarrollarán sobre lenguaje Java, distribuídos en paquetes correspondientes a las diferentes unidades didácticas del curso.
Durante la primera unidad didáctica se desarrolla la programación de procesos capaces de generar subprocesos mediante la clase ProcessBuilder.
Cada paquete contiene un ejercicio o ejemplo con el código del proceso padre y el subproceso hijo, así como los archivos necesarios, de haberlos.
En los ejercicios se utilizará la entrada estándar por teclado para la introducción de parámetros, o bien se leerán cadenas de texto desde ficheros mediante el uso de pipes. En el ejercicio Ej8_Palindromo pueden verse ambas opciones de funcionamiento.
En esta unidad didáctica se ve la programación multihilo, generando hilos mediante implementación de la interfaz Runnable, o mediante herencia de la clase Thread.
La sincronización entre hilos se realizar mediante objetos compartidos con métodos sincronizados y el uso del los métodos de sincronización wait() y notify() de Thread. Un ejemplo de uso sería el ejercicio Ej15_Relevos.
Otro ejemplo de sincronización podemos verlo en el ejercicio Ej13_ProductorConsumidor donde se realiza una resolución del problema Productor-Consumidor mediante un flag booleano.