Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- c++
- Close
- install
- JavaScript
- FOR
- package
- Python
- Linux
- range
- go
- Sync
- 리뷰
- C
- tcp
- channel
- API
- Golang
- mutex
- http
- bitcoin
- 영화
- json
- GO 언어
- write
- File
- 책
- go언어
- windows
- Callback
- window
Archives
- Today
- Total
Code Habit
Go ) 동기화 객체 본문
Go 언어에서는 채널 이외에도 고루틴의 실행 흐름을 제어하는 동기화 객체를 제공한다.
대표적인 동기화 객체는 다음과 같다.
- Mutex: 상호배제(mutual exclusion)라고도 하며 여러 스레드(고루틴)에서 공유되는 데이터를 보호할 때 주로 사용한다.
- RWMutex: 읽기/쓰기 뮤텍스이다. 읽기와 쓰기 동작을 나누어서 잠금(락)을 걸 수 있다.
- Cond: 조건 변수(condition variable)이다. 대기하고 있는 하나의 객체를 깨울 수도 있고 여러 개를 동시에 깨울 수도 있다.
- Once: 특정 함수를 딱 한 번만 실행할 때 사용한다.
- Pool: 멀티 스레드(고루틴)에서 사용할 수 있는 객체 풀이다. 자주 사용하는 객체를 풀에 보관했다가 다시 사용한다.
- WaitGroup: 고루틴이 모두 끝날 때까지 기다리는 기능이다.
- Atomic: 원자적 연산이라고도 하며 더 이상 쪼갤 수 없는 연산이라는 뜻이다. 멀티 스레드(고루틴), 멀티코어 환경에서 안전하게 값을 연산하는 기능이다.