[0] Compexity [Latches] Implemented using simple instructions typically, test-and-set, compare-and-swap, or simple CPU instructions. Implementation is port spesific because the CPU instructions are machine dependent. Lightweight. [Locks] 
Implemented using a series of instructions with context switches. Heavyweight.