Teacher
|
CRESCENZI VALTER
(syllabus)
Concurrent Programming Fundamentals • Sequential and Parallel Process • Finite Progress Assumption, Fairness and Deadlock • Bernstein conditions, and interference • Dijkstra Semaphores • Conditional Critical Regions • Monitors • Classic Problems
UNIX: Threads and Processes • Process creation: fork() & exec() • IPC: signals, pipes, shared memory, semaphores • POSIX Threads: pthread_create() • thread synchronization: mutex, condition variable, semaphores • thread specific data (TSD) • Unix Client/Server Programming • socket API , TCP vs UDP • Competition problems server side
Java thread • thread creation • java monitor • java cooperation: wait() & notify() • programming techniques for thread-safeness • java.util.concurrent API
Advanced Topics • non-blocking algorithms • concurrent programs testing • modello ad attori • reactive streams
(reference books)
BRIAN GOETZ. JAVA CONCURRENCY IN PRACTICE - ADDISON WESLEY DOUG LEA. CONCURRENT PROGRAMMING IN JAVA - Second ED. - ADDISON WESLEY MAURICE HERLIHY, NIR SHAVIT. THE ART OF MULTIPROCESSOR PROGRAMMING - MORGAN KAUFMANN
|