This presentation introduces the concept of synchronization beatween threads, as implemented in the Java platform. It is the second part of a series of slides dedicated to thread synchronization. This slides introduces the following concepts: - Conditional locking - Volatile variables - Thread confinement - Immutability The presentation is took from the Java course I run in the bachelor-level informatics curriculum at the University of Padova.