RW Mutex vs Mutex
RW Mutex -> Digunakan untuk supaya beberapa function dapat membaca data yang sama secara bersamaan.
Mutex Only
package main
import (
"fmt"
"sync"
)
var (
wg sync.WaitGroup
m sync.Mutex
rw sync.RWMutex
v int = 0
)
func main() {
for i := 1; i <= 10; i++ {
fmt.Printf("\nITERASI-%d\n", i)
wg.Add(2)
go func() {
m.Lock()
fmt.Println("Write lock")
v++
fmt.Println("Write unlock")
m.Unlock()
wg.Done()
}()
go func() {
m.Lock()
fmt.Println("Read lock")
fmt.Println(v)
fmt.Println("Read unlock")
m.Unlock()
wg.Done()
}()
}
wg.Wait()
fmt.Println("\nFinished", v)
}RW Mutex
Last updated