Skip to content

Files

Latest commit

1c0e0cd · Mar 31, 2018

History

History
This branch is 2116 commits behind iluwatar/java-design-patterns:master.

semaphore

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Nov 28, 2017
Dec 31, 2017
Nov 28, 2017
Mar 31, 2018
layout title folder permalink categories tags
pattern
Semaphore
semaphore
/patterns/semaphore/
Concurrency
Java
Difficulty-Intermediate

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.

alt text

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