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