Go Mutex and RWMutex: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=External= * https://pkg.go.dev/sync#Mutex =Internal= * The <tt>sync</tt> package =Overview= A <code>Mutex</code> is a mutual exclusion lock. Only o...")
 
Line 3: Line 3:
=Internal=
=Internal=
* [[Go_Package_sync#Mutex|The <tt>sync</tt> package]]
* [[Go_Package_sync#Mutex|The <tt>sync</tt> package]]
* [[Go_Language_Goroutines#Mutex|Goroutines]]


=Overview=
=Overview=

Revision as of 19:31, 5 September 2023

External

Internal

Overview

A Mutex is a mutual exclusion lock. Only one goroutine can enter the critical section at a time. Not until the call to the Unlock() function issued can another goroutine enter the critical section.

Usage pattern (the curly braces are not necessary):

var mutex sync.Mutex

...

mutex.Lock() {
    // do something in a mutual exclusion mode
}

mutex.Unlock()