Programming/Go
[Go] Mutex
M0ca
2020. 12. 8. 21:16
반응형
A Tour of Go
tour.golang.org
Go에서 Mutex에 대해 배워보자.
sync.Mutex에 있으며 Lock과 Unlock 2개의 메소드를 갖고 있다.
위 예제는 map의 값을 goroutine으로 병렬적으로 값을 증감시키는 예제다.
Mutex로 locking 하는 이유에 대해서는 cafemocamoca.tistory.com/93?category=1008201 에 있는 pdf를 참조하자. 자세히 써놨을 것이다.
Value 함수를 보자.
처음에 map 변수 c를 lock한다. 이는 주석에 써 있듯이 다른 고루틴의 접근을 방지하기 위해서다.
그리고 unlock은 defer를 통해 해준다. defer는 연산이 먼저 완료되도 함수가 끝날 때 적용시키는 문법이다.
만약 defer가 없었으면 어떘을까?
Value함수 밖에서 unlock을 해줬어야 한다.
반응형