2016-03-24 18:13:37 +00:00
|
|
|
---
|
|
|
|
layout: pattern
|
|
|
|
title: Mutex
|
|
|
|
folder: mutex
|
|
|
|
permalink: /patterns/mutex/
|
2016-08-30 15:10:34 +02:00
|
|
|
pumlid: 9SR13OCm30NGLSe0n7UsCS62LB69x6zWV2hrdTxKhFRS9Br_3c34GkHybxtXo3L3l9u6CPHwAhMUDuETldpnl4cqtUR1WBW5ASSlf0bvI53_A-bQHcf_0G00
|
2016-07-21 09:27:48 +03:00
|
|
|
categories: Concurrency
|
2016-03-24 18:13:37 +00:00
|
|
|
tags:
|
|
|
|
- Java
|
2016-07-21 09:27:48 +03:00
|
|
|
- Difficulty-Intermediate
|
2016-03-24 18:13:37 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
## Also known as
|
|
|
|
Mutual Exclusion Lock
|
|
|
|
Binary Semaphore
|
|
|
|
|
|
|
|
## Intent
|
|
|
|
Create a lock which only allows a single thread to access a resource at any one instant.
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
## Applicability
|
|
|
|
Use a Mutex when
|
|
|
|
|
|
|
|
* you need to prevent two threads accessing a critical section at the same time
|
|
|
|
* concurrent access to a resource could lead to a race condition
|
|
|
|
|
|
|
|
## Credits
|
|
|
|
|
|
|
|
* [Lock (computer science)] (http://en.wikipedia.org/wiki/Lock_(computer_science))
|
|
|
|
* [Semaphores] (http://tutorials.jenkov.com/java-concurrency/semaphores.html)
|