Synchronization was originally a process-based concept whereby a lock could be obtained on an object.
Java and Ada only have exclusive locks because they are thread based and rely on the compare-and-swap processor instruction.