Mutex

Page content

How to think

  1. Data race: an issue when data are accessible by multi-thread.
  2. How to solve? -> Locks, Mutual exclusion locks (a.k.a., Mutex locks)

Mutex

Mutex = Mutual exclution lock = a thread locks exclusively other threads until done.

(Binary) Semaphor and Mutex

https://stackoverflow.com/a/86021/9923806

Mutual exclusion semaphores are used to protect shared resources (data structure, file, etc..). A Binary semaphore should be used for Synchronization.

Critical section

https://en.wikipedia.org/wiki/Critical_section

In concurrent programming, concurrent accesses to shared resources can lead to unexpected or erroneous behavior, so parts of the program where the shared resource is accessed need to be protected in ways that avoid the concurrent access. This protected section is the critical section or critical region. It cannot be executed by more than one process at a time. Typically, the critical section accesses a shared resource, such as a data structure, a peripheral device, or a network connection, that would not operate correctly in the context of multiple concurrent accesses.