NeuroWhAI의 잡블로그

'모던 C++로 배우는 동시성 프로그래밍' 책 리뷰 본문

개발 및 공부

'모던 C++로 배우는 동시성 프로그래밍' 책 리뷰

NeuroWhAI 2018. 11. 5. 20:54



원서는 2017년에 나왔고 저는 번역서를 구매했습니다.
그런데 찜 해놓았다가 구매 직전, 우연히 리뷰를 봤는데 번역이 이상하다고 해서 좀 망설였지만 결국 샀습니다.
하지만 제가 그동안의 꾸준한 구글 번역기 사용으로 번역체에 익숙해졌기 때문에 책 내용 이해에 크게 무리는 없었습니다(?)
(번역기가 뱉는 말이 한글로 된 한국어가 아닌 언어라도 언어는 언어이니 이해할 수 있습니다)

아무튼 이 책은 C++11부터 C++20까지의 표준 라이브러리를 이용한 동시성 프로그래밍을 소개하는 책입니다.
다만 중요한건 어디까지나 맛보기라는 점입니다.
라이브러리를 사용하는 예제는 꽤 있지만
동시성 프로그래밍을 위한 지침의 구체적인 적용 예시는 많이 없습니다.
근데 난이도도 쉬울 줄 알았더니 처음부터 듣도 보도 못했던 메모리 모델이 나와서 당황했습니다.
구글신의 힘을 빌려 어찌어찌 이해는 했지만요.

기억나는 키워드들을 적어보자면
atomic, thread, condition_variable, chrono, future, acquire-release, thread_local, mutex,
guard, promise, async, call_once, ABA, latch, ....
이정도네요.
call_once는 그냥 언리얼 엔진 블루프린트에 있는 블럭(DoOnce)이랑 비슷해서 키워드에 넣음(...)

기억에 남았던 내용 몇가지도 적어보자면
atomic이라고 하면 atomic<T>밖에 몰랐는데 생각보다 atomic이란 단어가 들어간 것들이 많았다.
future는 진작에 알았는데 promise가 있는건 처음 알았다... JS에서 처음 봤던 건데...
메모리 모델... 실제로 쓸 일이 없기를 빈다.
thread_local은 신기했다. 전역변수에 이 수식어를 붙이고 쓰면 스레드별로 로컬 변수가 따로 할당되어 쓰인다.
(근데 지역변수 놔두고 굳이???라는 생각이 들었지만 정적변수에도 쓸 수 있다고 함. 예시를 보자)
C++20에서 then(future), latch, barrier, transactional memory 등 다양한 것들이 추가될 예정이다.

이러합니다.

다음은 딥러닝 책이나 읽을까 생각 중입니다.




Comments