Go Synchronization
July 16, 2019
*sync.Mutex
m := sync.Mutex
m.Lock() // for locking
m.Unlock() // for unlocking
sync.RWMutex
m := sync.RWMutex
// Read lock & Read unlock.
m.RLock()
m.RUnlock()
// for Write locks & write unlocks
m.Lock()
m.Unlock()
sync.WaitGroup
e.g.
func main() {
var wg sync.WaitGroup
wg.Add(1)
go func() {
fmt.Println("Inside my goroutine")
wg.Done()
}()
wg.Wait()
fmt.Println("Finished Execution")
}