Implementation of synchronization

I have read the Essence of Software and all the information that I could find on the website regarding synchronizations, but was still unclear on some of the semmantic details of synchronizations. For example, is the first statement the only one used as a guard for the synchronization transaction? Do you have any recommendations for implementing synchronizations? For instance, would a Conservative Two Phase Locking Protocol need to be implemented in a Mediator containing all synchronized concept processes/threads?