Go Package sync: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 10: Line 10:
=Overview=
=Overview=
The <code>sync</code> package provides [[Go_Language_Goroutines#Synchronization|synchronization]] primitives to use when synchronization between [[Go_Language_Goroutines#Synchronization|goroutines]] is necessary.
The <code>sync</code> package provides [[Go_Language_Goroutines#Synchronization|synchronization]] primitives to use when synchronization between [[Go_Language_Goroutines#Synchronization|goroutines]] is necessary.
=<tt>WaitGroup</tt>=
{{Internal|Go WaitGroup#Overview|<tt>WaitGroup</tt>}}


=TO DISTRIBUTE=
=TO DISTRIBUTE=

Revision as of 21:09, 1 September 2023

External

Internal

Overview

The sync package provides synchronization primitives to use when synchronization between goroutines is necessary.

WaitGroup

WaitGroup

TO DISTRIBUTE

Mutex

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()