간편결제, 신용카드 청구할인
PAYCO(페이코) 최대 5,000원 할인
(페이코 신규 회원 및 90일 휴면 회원 한정)
네이버페이 1%
(네이버페이 결제 시 적립)
북피니언 롯데카드 30% (15,750원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (18,000원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (20,250원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (20,930원)
(최대할인 3만원 / 3만원 이상 결제)
Close

C++ 멀티스레딩 정복하기 : 견고하면서도 병렬성과 병행성을 가지는 애플리케이션 작성법

원제 : Mastering C++ Multithreading: A comprehensive guide to developing effective multithreading applications in C++
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 495
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

25,000원

  • 22,500 (10%할인)

    1,250P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(18)

  • 사은품(13)

책소개

견고하면서도 병렬성과 병행성을 가지는 애플리케이션 작성법

멀티스레드와 병행성에 대한 깊이 있는 논의와 그 구현 방법을 다루고, 원자적 동작의 본질을 이해하고 코드 최적화에 유용하게 사용할 수 있는 방법을 배운다. 분산 컴퓨팅 환경에서 멀티스레드 애플리케이션을 구현하고 멀티스레딩을 채택한 C++ 기반의 GPGPU 애플리케이션 설계 방법을 익힌다.

출판사 서평

[이 책에서 다루는 내용]

- 다양한 운영체제가 현재 멀티스레딩을 구현하는 방식
- 새로운 애플리케이션의 설계 시 최적의 멀티스레딩 API 선택
- 뮤텍스와 스핀락의 사용, 그 외의 동기화 개념 파악
- 스레드 간의 안전한 데이터 전달 방법
- 다양한 C++ 툴체인이 제공하는 API 지원 수준
- 멀티스레드 코드의 일반적인 문제 해결 및 빠지기 쉬운 함정 파악
- 원자적 동작의 본질을 이해하고 이들을 코드 최적화에 유용하게 사용할 수 있는 방법
- 분산 컴퓨팅 환경에서의 멀티스레드 애플리케이션 구현
- 멀티스레딩을 채택한 C++ 기반의 GPGPU 애플리케이션 설계

[이 책의 대상 독자]

멀티스레딩과 병행적 처리에 대한 지식을 넓히고자 하는 C++ 중급 개발자를 대상으로 한다. 이 책을 보려면 멀티스레딩에 대한 기본적 경험이 있어야 하고 명령행에서 C++ 개발 툴체인을 다루는 데 익숙해야 한다.

[이 책의 구성]

1장, '멀티스레딩 검토'에서는 C++에서의 멀티스레딩을 요약하고 숙지하고 있어야 할 개념을 살펴본다. C++의 2011년 개정안에 추가된 네이티브 스레딩 지원을 사용하는 기본 멀티스레딩 예제를 살펴본다.
2장, '프로세서와 OS에서의 멀티스레딩 구현'에서는 1장에서 논의한 하드웨어 구현에서 제공되는 기본 기능을 바탕으로, OS가 어떻게 이들 기능을 사용해 애플리케이션에서 이들을 이용하는지 알아본다. 애플리케이션과 스레드가 서로 간섭하지 않도록 프로세스와 스레드가 메모리와 프로세서를 사용하는 방법도 논의한다.
3장, 'C++ 멀티스레딩 API'에서는 OS 수준의 API(Win32와 POSIX 등)와 프레임워크(Boost와 Qt, POCO 등)에서 제공되는 다양한 멀티스레딩 API를 알아본다. 이들 각 API를 실행, 다른 API와 비교해 그 차이점을 알아보고 독자의 애플리케이션에서 가질 수 있는 장단점을 살펴본다.
4장, '스레드 동기화와 통신'에서는 앞서 배운 주제에 대해 C++ 14 버전의 네이티브 스레딩 API를 사용해 구현된 고급 멀티스레딩 구현을 알아본다. 이를 통해 여러 스레드가 스레드 안전성 문제없이 통신할 수 있는 방법을 이해한다. 뮤텍스와 락, 조건 변수를 포함한 여러 유형의 동기화 메커니즘 간의 차이점도 다룬다.
5장, '네이티브 C++ 스레드와 기본 요소'에서는 스레드와 병행성, 로컬 스토리지를 비롯해 이 API에서 지원되는 스레드 안전성을 다룬다. 4장의 예제에 바탕을 두고 C++ 11과 C++ 14 버전의 완전한 기능 세트에 의해 제공되는 기능을 사용해 스레드 안전성을 확장하고 최적화하는 방법을 알아본다.
6장, '멀티스레드 코드의 디버깅'에서는 애플리케이션의 멀티스레드 성능을 분석하고 핫스팟을 탐지하며, 병행적 접근으로 발행하는 문제를 해결하고 방지하기 위해 Valgrind(Memcheck와 DRD, Helgrind 등) 같은 툴을 사용하는 방법을 습득한다.
7장, '모범 실전 사례'에서는 흔히 겪는 함정과 난제를 다룬다. 문제를 유발하기 전에 사전에 파악하는 방법을 알아본다. 또한 예제를 이용해 몇 가지 일반적인 상황과 예외적인 상황을 살펴본다.
8장, '원자적 동작 - 하드웨어와 작업하기'에서는 원자적 동작에 대해 세부적으로 다룬다. 원자적 동작이 무엇이며 최적으로 사용하는 방법을 알아본다. 여러 CPU 아키텍처에서 어떤 컴파일러 지원이 이뤄지는지 살펴보고 코드에 원자적 동작을 구현할 때 시간을 투자할 가치가 있는지 평가해본다. 또한 이런 최적화로 인해 코드의 이식성이 어떻게 제한되는지 알아본다.
9장, '분산 컴퓨팅에서의 멀티스레딩'에서는 이전 장들에서 배운 여러 내용을 멀티시스템과 클러스터 수준의 시스템에 적용해본다. OpenMPI 기반의 예제를 이용해 컴퓨터 클러스터 내의 노드같이 여러 시스템에서 멀티스레딩을 수행하는 방법을 알아본다.
10장, 'GPGPU에서의 멀티스레딩'에서는 GPGPU 애플리케이션(CUDA와 OpenCL 등)에서 멀티스레딩 사용법을 살펴본다. OpenCL 기반의 예제를 사용해 병렬로 작업을 실행하는 기본적인 멀티스레드 애플리케이션을 알아본다. 이전 장들에서 배운 내용을 비디오 카드와 그 파생 하드웨어(예를 들어 랙-마운트(rack-mounted) 벡터 프로세서 하드웨어)에서 처리할 수 있도록 이를 적용한다.

목차

1장. 멀티스레딩 검토
시작하기
멀티스레드 애플리케이션
-메이크파일
그 밖의 애플리케이션
요약

2장. 프로세서와 OS에서의 멀티스레딩 구현
프로세스와 스레드의 정의
-x86에서의 태스크(32-비트와 64-비트)
-ARM에서의 프로세스 상태
스택
멀티스레딩의 정의
-플린의 분류
-대칭 대 비대칭 멀티프로세싱
-느슨하거나 단단하게 결합된 멀티프로세싱
-멀티프로세싱과 멀티스레딩의 결합
-멀티스레딩 유형
스케줄러
예제 애플리케이션 추적
상호 배제 구현
-하드웨어
-소프트웨어
요약

3장. C++ 멀티스레딩 API
API 개요
POSIX 스레드
-윈도우 지원
-Pthreads 스레드 관리
-뮤텍스
-조건 변수
-동기화
-세마포어
-스레드 로컬 스토리지
윈도우 스레드
-스레드 관리
-고급 관리
-동기화
-조건 변수
-스레드 로컬 스토리지
상승
Qt
-QThread
-스레드 풀
-동기화
-QtConcurrent
-스레드 로컬 스토리지
POCO
-Thread 클래스
-스레드 풀
-스레드 로컬 스토리지
-동기화
C++ 스레드
모두 합치면
요약

4장. 스레드 동기화와 통신
안전 제일
스케줄러
-고수준 관점
-구현
-요청 클래스
-Worker 클래스
디스패처
-메이크파일
-출력 결과
공유 데이터
-읽기-쓰기 락의 사용
-공유 포인터의 사용
요약

5장. 네이티브 C++ 스레드와 기본 요소

STL 스레딩 API
-Boost.Thread API
2011 표준
C++14
C++17
STL 구성
스레드 클래스
-기본 사용
-인자 전달
-반환 값
-레드 이동하기
-스레드 ID
-슬립
-양보(Yield)
-분리(Detach)
-스왑(Swap)
뮤텍스
-기본 사용
-타임드 뮤텍스
-락 가드
-고유 락
-범위 락
-재귀 뮤텍스
-재귀 타임드 뮤텍스
공유 뮤텍스
-공유 타임드 뮤텍스
조건 변수
-Condition_variable_any
-스레드 종료 시점에 모두에게 통지하기
퓨처
-프라미스
-Packaged_task
-Async
원자적 요소
요약

6장. 멀티스레드 코드의 디버깅
언제 디버깅을 시작해야 하나
단순한 디버거
-GDB
-멀티스레드 코드의 디버깅
-브레이크포인트
-백 트레이스
동적 분석 툴
-제약
-대안
-Memcheck
-Helgrind
-pthreads API의 오사용
-락 순서 문제
-데이터 경쟁
-DRD
-기본 사용
-기능
-C++11 스레드 지원
요약

7장. 모범 실전 사례
올바른 멀티스레딩
잘못된 기대-데드락
부주의-데이터 경쟁
만능이 아닌 뮤텍스
훌륭한 뮤텍스인 락
스레드 대 퓨처
초기화의 정적 순서
요약

8장. 원자적 동작 - 하드웨어와 작업하기
원자적 동작
-비주얼 C++
GCC
메모리 순서
-기타 컴파일러
-C++11 원자적 요소
-예제
-비클래스 함수
-예제
-원자적 플래그
-메모리 순서
요약

9장. 분산 컴퓨팅에서의 멀티스레딩
분산 컴퓨팅이란
-MPI
-MPI 애플리케이션의 컴파일
-클러스터 하드웨어
Open MPI 설치하기
-리눅스와 BSD
-윈도우
노드 간의 작업 분산
-MPI 노드 설정하기
-MPI 호스트 파일 생성하기
-작업 실행하기
-클러스터 스케줄러 사용하기
MPI 통신
-MPI 데이터 유형
-기본 통신
-고급 통신
-브로드캐스팅
-분산과 수집
MPI 대 스레드
잠재적 문제
요약

10장. GPGPU에서의 멀티스레딩
GPGPU 처리 모델
-구현
-OpenCL
-일반적인 OpenCL 애플리케이션
-OpenCL 버전
개발 환경 설정
-리눅스
-윈도우
-OS X/MacOS
기본 OpenCL 애플리케이션
GPU 메모리 관리
GPGPU와 멀티스레딩
-지연 시간
잠재적 문제
GPGPU 애플리케이션의 디버깅
요약

본문중에서

멀티스레드 애플리케이션은 단일 프로세서 환경에서 여러 스레드를 실행한다. 실용적인 예제로 채워진 이 책은 C++에서 견고하고도 병행적, 병렬적 애플리케이션 작성할 수 있도록 돕는다. 멀티스레딩과 병행성의 기본적 내용을 심도 있게 다뤄, 이들을 구현하는 방법을 소개한다. 이 과정에서 코드 성능 최적화를 위한 원자적 동작을 경험할 것이며 분산 컴퓨팅과 GPGPU 처리에 병행성을 적용하게 될 것이다.
('지은이의 말' 중에서)

언젠가부터 멀티스레드가 없는 애플리케이션 개발을 상상하기 힘들어졌다. 제한된 컴퓨팅 환경에서 주어진 특정 작업을 가장 효율적으로 수행하는 여러 방식 가운데, 멀티스레드는 병행성과 병렬성 측면에서 가장 뛰어난 프로그램 기법 중 하나일 것이다. 이 책은 멀티스레딩과 병행성의 기본 개념을 파악하고 이를 C++에 효율적으로 적용하는 방법을 알려준다.
또한 멀티스레딩의 안전하고도 효율적인 구현을 위해 필수적인 내용을 다룬다. 즉, 운영체제와 프레임워크가 이들에 대한 저수준 함수를 이용하는 방법과 함께 이들 개념이 하드웨어 수준에서 동작하는 방법을 심도 있게 다루며, 스레드 간 동기화와 통신, 병행성 C++ 애플리케이션의 디버깅, C++에서 가장 모범적인 프로그래밍 사례 등을 다룬다.
마지막으로 원자적 동작의 본질을 이해하고 이들을 코드 최적화에 유용하게 사용할 수 있는 방법을 습득하며, 분산 컴퓨팅 환경에서 멀티스레드 애플리케이션을 구현하고 멀티스레딩을 채택한 C++ 기반의 GPGPU 애플리케이션 설계 방법을 익힌다. 특히, 10장에서 다루는 GPGPU 애플리케이션 설계 방법은 최근 비트코인 채굴과 관련해 그래픽 카드의 품귀 현상과도 그 궤를 같이한다는 점에서 주목할 만하다.
이 책은 그 분량에 비해 다루는 내용의 심도와 주제가 상당히 광범위하며 때론 포괄적이고도 때론 매우 정교하다. 개발자 여러분, 이제 준비가 되었다면 안전띠를 단단히 조이고 멋진 질주를 시작해보자!
('옮긴이의 말' 중에서)

저자소개

마야 포쉬(Maya Posch) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 1종
판매수 41권

소프트웨어 공학자로 이 업계와 전자, 로봇, AI 분야에 심취해 있다. 절친 트레버 퍼디(Trevor Purdy)와 함께 소프트웨어 개발 회사 니얀코(Nyanko)를 운영하며 다양한 게임 개발 프로젝트 업무를 진행 중이다. 이외에도 전 세계 기업을 대상으로 다양한 프리랜서 업무를 진행한다.
소프트웨어 작성 외에도 방정식을 풀고 소설 집필을 즐긴다. 닌텐도의 명작 <젤다의 전설: 시간의 오카리나>를 기반으로 한 이야기를 쓰고, 최근에는 생존 공포 소설 『Viral Desire』을 쓰기 시작했다. 디지털 도서관 웹사이트 스크리브드(Scribd) 프로필을 보면 전체 저작 목록을 볼 수 있

펼쳐보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

삼성전자에서 GNU 컴파일러를 기반으로 ARM CORE 컴파일러 포팅/개발 프로젝트를 수행했다. 이후 보안 분야와 디바이스 드라이버에 관심을 두고 데브그루를 공동으로 창업해 다양한 장치/보안 드라이버를 개발했고, 다수의 드라이버 강의와 세미나, 교육을 진행했다. (주)안랩의 기반 기술팀에서 보안 관련 시스템 프로그램 개발 업무를 수행했다. 주요 번역서로는 『Windows Internals 7/e Vol.1』(에이콘, 2018), 『THE GARBAGE COLLECTION HANDBOOK』(에이콘, 2016), 『실전 윈도우 디버깅』(에이콘, 2008), 『WDF』(에이콘, 2008) 등이 있다. 지금은 여행과 사진에 흥미를 느

펼쳐보기

이 상품의 시리즈

프로그래밍 언어 시리즈(총 19권 / 현재구매 가능도서 19권)

펼쳐보기

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    0.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    7.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용