mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-10-13 18:15:41 +00:00
1 parent
474f2658ee
commit
e2af78f417
2 files changed
No files matched your search
@@ -0,0 +1,33 @@
|
||||
---
|
||||
layout: pattern
|
||||
title: Semaphore
|
||||
folder: semaphore
|
||||
permalink: /patterns/semaphore/
|
||||
categories: Lock
|
||||
tags:
|
||||
- Java
|
||||
- Difficulty-Beginner
|
||||
---
|
||||
|
||||
## 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.
|
||||
|
||||

|
||||
|
||||
## 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)
|
||||
Reference in new issue
Block a user