Java / Java Multithreading
Difference between Mutex and Semaphore in Java.
Mutex is basically mutual exclusion. Only one thread can acquire the resource at once and others wait. Semaphore is used to control the number of threads executing. There will be fixed set of resources. When the semaphore count reaches 0 then no other threads are allowed to acquire the resource. The threads get blocked till other threads owning resource releases. Mutex is just one thread while Semaphore is defined number of 'N' threads.
A mutex does have the concept of ownership while Semaphore doesn't, any thread can release a semaphore.
Mutexes may also support priority inheritance and recursion.
More Related questions...