[Originally Posted By]: http://stackoverflow.com/questions/2332765/lock-mutex-semaphore-whats-the-difference
A lock allows only one thread to enter the part that’s locked and the lock is not shared with any other processes.
A mutex is the same as a lock but it can be system wide (shared by multiple processes).
A semaphore does the same as a mutex but allows x number of threads to enter.
You also have read/write locks that allows either unlimited number of readers or 1 writer at any given time.