* Adding support for maven assembly plugin to generate executable jar with all dependencies in built * Merge branch 'master' into issue-989 # Conflicts: # abstract-document/pom.xml # pom.xml * Adding maven assemly plugin for projects with name A * Update in format as per checkstyle, i.e. Spcae in place of tab with size of 2 * batch set - 2 having all project with B and C * issue-989 d-e-f * fixing eip pom and adding g-h-i-l-m-n Skipping naked object as it seems it doesn't have main method, will consider this at end * Adding for O and P projects Skipping Object-Mother as we don't have main method for same. * Final batch
layout, title, folder, permalink, categories, tags
layout | title | folder | permalink | categories | tags | |
---|---|---|---|---|---|---|
pattern | Semaphore | semaphore | /patterns/semaphore/ | Concurrency |
|
Also known as
Counting Semaphore
Intent
Create a lock which mediates access to a pool of resources. Only a limited number of threads, specified at the creation of the semaphore, can access the resources at any given time. A semaphore which only allows one concurrent access to a resource is called a binary semaphore.
Class diagram
Applicability
Use a Semaphore when
- You have a pool of resources to allocate to different threads
- Concurrent access to a resource could lead to a race condition
Credits
- [Semaphore(programming)] (http://en.wikipedia.org/wiki/Semaphore_(programming))
- [Semaphores] (http://tutorials.jenkov.com/java-concurrency/semaphores.html)