일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- go channel
- 공룡책
- 백준
- C++ gui 라이브러리
- 코딩
- 알고리즘
- 프로그래밍
- vim-go
- OS
- JUCE
- C++ gui
- C++ library
- a tour of go
- Docker
- LOB
- 연결리스트
- 운영체제
- go
- c++ heap
- 자료구조
- Nebula
- JUCE라이브러리
- 리듬게임
- C언어
- JUCE library
- C++
- BOJ
- tour of go
- gui
- JUCE 튜토리얼
Archives
- Today
- Total
CafeM0ca
[Go] Mutex 본문
반응형
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을 해줬어야 한다.
반응형
'Programming > Go' 카테고리의 다른 글
[Go] JSON encode/decode (0) | 2021.01.09 |
---|---|
[Go] A Tour of Go Exercise: Web Crawler (0) | 2020.12.09 |
[Go] A tour of go Exercise: Equivalent Binary Trees 풀이 (0) | 2020.12.08 |
[Go] Goroutine과 channel (0) | 2020.12.07 |
[Go] A tour of Go exercise Reader, rot13Reader 풀이 (0) | 2020.12.06 |
Comments