자바 병렬 프로그래밍 : 멀티코어를 100% 활용하는..

이 책은 자바로 멀티 스레드를 조금 더 공부하기 위해서 꼭 필요한 책이라고 생각한다.
이 책에 대해서 간단하게 딴죽을 걸고 넘어가자면, 병렬보다는 병행이 더 좋지 않을까 하는 것과 용어 선택이 조금 이상한 부분들이 좀 있다는 것(?) 정도이다.

이 책의 저자중의 한 명인, Doug Lea 교수님은 자바의 java.util.concurrent 패키지의 아버지라 말할 수 있을 정도로, 자바 멀티 스레드를 병행 프로그래밍의 여러 상황에 적절하게 대응하고 개발하기 쉽게 확장한 바에 가장 큰 역활을 한 분이다.

그래서, 나는 이 분이 쓰신 Concurrent Programming in Java(1996, 1999) 책은 자바 스레드 분야의 최고의 명저라고 생각한다. 국내에서는 “자바 병행 프로그래밍 : 디자인 원리와 패턴”으로 번역판이 나와 있다. 위의 Concurrent Programming in Java를 이어받은 최근의 역작이 바로 Java Concurrency in Practice(자바 병렬 프로그래밍)라고 생각한다. 자, 왜 이렇게 저자가 많은 이유를 살펴보자.

이 책의 저자들은 공통점이 하나 있는데, 다들 JCP의 JSR-166 : Concurrency Utilities 의 전문가들이다. Joshua bloch(조쉬아 블러시)는 현 그룹의 구성원으로 이름이 없지만, 초기 그룹 구성원으로 이름을 볼 수 있다. JSR-166은 java.util.concurrent를 제안하고 만들어낸 그룹으로 아래의 사람들이 자바에서는 최고의 멀티 스레드 전문가들이라고 할 수 있겠다.
* Brian Goetz(브라이언 게츠)
* Tim Peierls(팀 피얼스)
* Joshua bloch(조쉬아 블러시)
* Joseph Bowbeer(조셉 보위어)
* David Holmes(데이빗 홈즈)
* Doug Lea(더그 리) : JSR-166의 리더
 
따라서, 이 책이 왜 자바 스레드 분야의 명저가 됐는지 쉽게 이해할 수 있겠다. 이 책은 제목에 Practice가 들어가 있어서 그런지, 자바로 멀티 스레드 프로그래밍을 하면서 겪을 수 있는 상황과 그 상황의 대처방법을 자세히 기술하고 있다.
 
책 내용을 개략적으로 살펴보면..
1장에서는 자바 언어의 스레드와 스레드를 제대로 사용하기 위한 기본적인 지식에 대해서 설명하고 있다.
2장에서는 스레드로 프로그래밍하는 예를 설명하고 있다.
3장에서는 스레드로 가용성과 확장성을 어떻게 가져갈 것인지에 대한 내용인데, 개인적으로는 1장 2장을 충실하게 읽었다면 굳이 필요성을 못 느낄 수 있는 내용이 될 수도 있을것 같다.
4장에서는 락을 세밀하게 명시적으로 잘 쓰자 정도(?).. 그 이유는 다른 주제들은 꼭 스레드 이슈만인 것도 아닌거 같아서..
 
마지막으로, 자바로 멀티 스레드 프로그래밍을 하신다면 꼭 추천하고 싶은 책이다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.