Infosys Interview Question

Explain the differences between the synchronized keyword, Lock, and Semaphore for managing thread synchronization.