[Effective Modern C++] 항목 39. 단발성 사건 통신에는 void 미래 객체를 고려하라
두가지 스레드에서 하나의 스레드의 작업이 끝나야만 시작되는 스레드가 있다고 하자. 이 같은 상황에서 작업이 다 끝났음을 알려주는 방법은 무엇일까? 한 가지 명백한 방법은 조건 변수를 사용하는 것이다. 이 변수를 조건에 따라 저장하는 과제를 검출 과제라고 하고, 이 조건에 반응하는 과제를 반응 과제라고 하자. 어떤 방법이 있는지 알아보자. std::condition_variable std 에서 제공하는 방법으로 다음과 같이 사용할 수 있다. std::condition_variable cv; std::mutex m; // 검출 과제 { ... cv. notify_one(); } // 반응 과제 { ... { std::unique_lock lk(m); cv.wait(lk); ... } ... } 위 코드는 잘..
C++/Effective Modern C++
2020. 2. 24. 23:46
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 다이소
- const
- 보편 참조
- detach
- Overloading
- 보편참조
- 람다
- Forwarding
- C++11
- forward
- 포인터
- Perfect
- CPP
- 발아시기
- auto
- async
- Join
- std::forward
- MOVE
- thread
- Future
- Effective Modern C++
- Unreal
- C
- C++
- C++14
- Effective
- std::move
- Modern
- Override
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함