I've heard these words related to concurrent programming, but what's the difference between lock, mutex and semaphore?

Edit
Report