동시성 프로그래밍 - Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z
다카노 유키 지음, 김모세 옮김 / 한빛미디어 / 2022년 4월
평점 :
장바구니담기


동시성 프로그래밍. Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A부터 Z까지를 학습할 수 있는 책. 이 책을 읽기 위해서 필요한 사전 지식은 C, Rust를 습득한 대학교 3,4학년 또는 대학원생 이상이며 포인터를 이해하지 못했다면 이 책을 읽기 어려울 수 있다. 아 그리고 멀티 코어를 다루는 내용을 생각한다면 이 책은 해당 내용에 대해선 많은 설명이 없으니 다른 책을 찾아보길 바란다.동시성 프로그래밍. Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A부터 Z까지를 학습할 수 있는 책. 이 책을 읽기 위해서 필요한 사전 지식은 C, Rust를 습득한 대학교 3,4학년 또는 대학원생 이상이며 포인터를 이해하지 못했다면 이 책을 읽기 어려울 수 있다. 아 그리고 멀티 코어를 다루는 내용을 생각한다면 이 책은 해당 내용에 대해선 많은 설명이 없으니 다른 책을 찾아보길 바란다.



이 책은 스레드를 처음으로 사용해 보고 싶은 분들이나, 스레드를 사용하고 있으나 이렇게 사용하는 것이 맞는지 의심이 드는 분들 혹은 느낌적인 느낌으로 사용하고 있었던 부분들을 좀 더 자세하게 설명해 준다.



먼저 동시성과 병렬성을 설명하는 부분을 보면 비슷하지만 다른 것, 본인도 이 책을 읽기 전엔 동시성과 병렬성이 같은 의미인 줄 알았다. 책에는 자세히 적혀 있지만 동시성의 경우 하나의 프로세스로 동시에 여러 가지 일을 처리하는 것을 의미하고, 병렬성은 동시에 여러 개의 프로세스로 하나 또는 여러 가지 일을 처리하는 방식을 의미한다. 이론적인 설명 부분들을 지나가면 스레드의 기초부터 설명을 한다. C언어를 사용하여 스레드를 생성하는 방법. 그리고 해당 소스 코드가 어떻게 동작하는지 등 아래 그림처럼 소스코드를 자세히 설명을 해준다.




이 책을 읽다가 보면 스레드를 사용하면서 그동안 궁금했던 것들을 알 수가 있다. 예를 들면 Intel CPU의 명령어 중에 AVX 명령어에 관한 설명이다. 이 책에서 알려주려 하는 것은 스레드를 사용하면 프로그램이 더 빨라지는지 느려지는지 같은 스레드를 좀 더 잘 사용하고 활용할 수 있도록 도와주는 책이다. 이 책에서 설명하는 내용들은 뮤텍스, 스핀락, 세마포어, 데드락, 재귀락, 코루틴, async 등 프로그래밍을 하면서 한 번씩 들어보거나 사용해 본 것들을 다르고 있다.



IOCP는 한 번쯤은 들어 봤을 것이다. 하지만 이 책에서는 async를 설명해 주고 있다.



그리고 각 스레드의 락을 사용하는 방법과 효율들에 대해서도 설명이 되어 있다. 스레드를 사용하면서 의문이 남거나 스레드를 공부해 보고 싶은 사람에게 추천한다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo