Explain the differences between mutex, semaphore, and spinlock | Hello Interview