간편결제, 신용카드 청구할인
네이버페이 1%
(네이버페이 결제 시 적립)
NH(올원페이)카드 12% (23,760원)
(3만원 이상 결제/최대 1만원 할인)
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
하나SK 북&카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (21,600원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (24,300원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (25,110원)
(최대할인 3만원 / 3만원 이상 결제)
Close

C# 멀티스레드 프로그래밍 : 멀티코어를 위한 스레드, TPL, PLINQ, Rx 활

원제 : Multithreading in C# 5.0 Cookbook

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

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

30,000원

  • 27,000 (10%할인)

    1,500P (5%적립)

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

  • 연관도서(321)

  • 사은품(1)

책소개

멀티 코어를 위한 Thread, TPL, PLINK, Rx 활용

이 책은 C#으로 애플리케이션의 성능을 효율적으로 올릴 수 있는 멀티스레딩과 병렬 프로그래밍 기법을 중심으로 다루었다. 스레드의 기본 개념부터 시작해 TPL, PLINQ, Rx 등 고급 주제까지 예제 코드로 풀어 설명했으며, 개발 과정에서 필요한 내용과 코드를 용도에 맞게 찾아볼 수 있도록 구성한 책이다.

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 기초 스레드 작업, 스레드 동기화, 스레드 작업 조정
■ 태스크 병렬 라이브러리로 자신만의 비동기 API 개발
■ C#의 비동기 언어 기능 활용
■ I/O 스레드로 서버 애플리케이션을 확장하는 방법
■ PLINQ와 LINQ 질의 병렬화
■ 윈도우 8 비동기 API 활용
■ 비동기 연산 실행과 옵션 관리를 위한 반응형 확장 사용

★ 이 책의 대상 독자 ★

이 책은 멀티스레딩, 비동기와 병렬 프로그래밍에 대한 배경지식이 부족하거나 아예 없는 기존 C# 개발자를 대상으로 하며, 기본 개념부터 시작해서 복잡한 프로그래밍 패턴, C#과 닷넷 에코 시스템을 이용한 알고리즘에 관련된 주제를 다룬다.

★ 이 책의 구성 ★

1장, '스레드 기초'에서는 C#에서 스레드를 이용한 기본 연산을 소개한다. 스레드의 개념과 스레드 사용의 장단점, 이외에 중요한 스레드의 다른 측면을 설명한다.

2장, '스레드 동기화'에서는 스레드 상호작용의 세부사항을 설명한다. 스레드를 함께 조정해야 하는 이유와 스레드 조정을 구성하는 다른 방식을 배운다.

3장, '스레드 풀 사용'에서는 스레드 풀 개념을 설명한다. 스레드 풀을 사용하는 방법, 비동기 연산으로 작업하는 방법, 스레드 풀 사용에 따른 좋고 나쁜 사례를 보여준다.

4장, '태스크 병렬 라이브러리 사용'에서는 태스크 병렬 라이브러리 프레임워크에 깊이 빠져본다. 태스크 조합, 예외 관리, 연산 취소를 포함한 TPL의 모든 중요한 측면을 개략적으로 설명한다.

5장, '네이티브 비동기 프로그래밍'에서는 C#의 새로운 특징인 비동기 메소드를 자세히 설명한다. async와 await 키워드의 의미와 다른 시나리오에서 사용하는 방법, 내부에서 await가 동작하는 방법 등을 알 수 있다.

6장, '동시성 컬렉션 사용'에서는 닷넷 프레임워크에 포함된 병렬 알고리즘을 위한 표준 데이터 구조를 설명한다. 각 데이터 구조에 대한 간단한 프로그래밍 시나리오를 살펴본다.

7장, 'PLINQ 사용'에서는 병렬 LINQ 인프라스트럭처에 깊이 빠져본다. 태스크와 데이터 병렬화, LINQ 질의 병렬화, 병렬화 옵션 미세조정, 질의 분할과 병렬 질의 결과 취합에 대해 설명한다.

8장, '반응형 확장'에서는 반응형 확장 프레임워크를 언제 어떻게 사용하는지 설명한다. 이벤트를 조합하는 방법, 이벤트 순서에 대한 LINQ 질의를 수행하는 방법을 배운다.

9장, '비동기 I/O 사용'에서는 파일, 네트워크, 데이터베이스 시나리오를 포함한 비동기 I/O 프로세스를 자세히 다룬다.

10장, '병렬 프로그래밍 패턴'에서는 일반적인 병렬 프로그래밍 문제 해결에 대해 개략적으로 설명한다.

11장, '윈도우 8 애플리케이션 프로그래밍'에서는 윈도우 8용 비동기 애플리케이션 프로그래밍의 개념을 다룬다. 윈도우 8 비동기 API로 작업하는 방법과 윈도우 스토어 애플리케이션에서 백그라운드 작업을 수행하는 방법을 배운다.

목차

1장 스레드 기초
__소개
__C#으로 스레드 생성
__스레드 일시 정지
__스레드 대기
__스레드 중단
__스레드 상태 조사
__스레드 우선순위
__포그라운드 스레드와 백그라운드 스레드
__스레드에 파라미터 전달
__C#의 lock 키워드로 잠그기
__Monitor 생성자로 잠그기
__예외 처리

2장 스레드 동기화
__소개
__기본 원자 연산 수행
__Mutex 생성자 사용
__SemaphoreSlim 생성자 사용
__AutoResetEvent 생성자 사용
__ManualResetEventSlim 생성자 사용
__CountdownEvent 생성자 사용
__Barrier 생성자 사용
__ReaderWriterLockSlim 생성자 사용
__SpinWait 생성자 사용

3장 스레드 풀 사용
__소개
__스레드 풀에서 대리자 호출
__스레드 풀에 비동기 연산 넣기
__스레드 풀과 병렬도
__취소 옵션 구현
__스레드 풀을 이용한 대기 처리와 타임아웃 사용
__타이머 사용
__BackgroundWorker 컴포넌트 사용

4장 태스크 병렬 라이브러리 사용
__소개
__태스크 생성
__태스크로 기본적인 연산 수행
__태스크를 함께 조합
__APM 패턴을 태스크로 변환
__EAP 패턴을 태스크로 변환
__취소 옵션 구현
__태스크에서 예외 처리
__태스크를 병렬로 실행
__TaskScheduler로 태스크 실행을 미세조정

5장 네이티브 비동기 프로그래밍
__소개
__비동기 태스크 결과를 얻는 await 연산자 사용
__람다 표현식에서 await 연산자 사용
__연속 비동기 태스크에 await 연산자 사용
__병렬 비동기 태스크 실행을 위한 await 연산자 사용
__비동기 연산에서 예외 처리
__잡아낸 동기화 컨텍스트를 사용해 회피
__async void 메소드 회피
__사용자 정의 대기 가능 타입 설계
__await로 dynamic 타입 사용

6장 동시성 컬렉션 사용
__소개
__ConcurrentDictionary 사용
__ConcurrentQueue를 이용한 비동기 처리 구현
__ConcurrentStack으로 비동기 처리 순서 변경
__ConcurrentBag을 이용해 확장 가능한 크롤러 생성
__BlockingCollection을 이용한 비동기 처리 일반화

7장 PLINQ 사용
__소개
__Parallel 클래스 사용
__LINQ 질의 병렬화
__PLINQ 질의의 파라미터 미세조정
__PLINQ 질의에서 예외 처리
__PLINQ 질의에서 데이터 분할 관리
__PLINQ 질의에 대한 사용자 정의 집계기 생성

8장 반응형 확장
__소개
__컬렉션을 비동기 관찰 가능한 컬렉션으로 변환
__사용자 정의 관찰 가능한 컬렉션 순서 작성
__Subject 타입 계열 사용
__Observable 객체 생성
__관찰 가능한 컬렉션에 대한 LINQ 사용
__Rx를 이용한 비동기 연산 생성

9장 비동기 I/O 사용
__소개
__비동기적으로 파일 처리
__비동기 HTTP 서버와 클라이언트 작성
__비동기적으로 데이터베이스 작업
__준비
__WCF 서비스를 비동기적으로 호출

10장 병렬 프로그래밍 패턴
__소개
__지연 평가된 공유 상태 구현
__BlockingCollection으로 병렬 파이프라인 구현
__TPL 데이터플로우로 병렬 파이프라인 구현
__PLINQ로 맵/리듀스 구현

11장 윈도우 8 애플리케이션 프로그래밍
__소개
__윈도우 스토어 애플리케이션에서 타이머 사용
__일반 애플리케이션에서 WinRT API 사용
__윈도우 스토어 애플리케이션에서 BackgroundTask 사용

본문중에서

얼마 전까지만 해도 일반적인 개인 컴퓨터의 CPU에는 하나의 연산 코어만 있었고, 그 전력소비량은 CPU 위에서 계란 프라이를 요리할 정도면 충분했다. 2005년 인텔이 첫 멀티코어 CPU를 소개한 이후에 컴퓨터들은 다른 방향으로 발전하기 시작했다. 낮은 전력 소비와 연산 코어 개수가 기초 연산 코어 성능보다 더 중요해진 것이다. 이것은 또한 프로그래밍 패러다임의 변화를 주도했다. 이제 최적 성능을 이루기 위해 모든 CPU 코어를 효율적으로 사용하는 방법을 배워야 하고, 동시에 특정 시간에 필요한 프로그램만 실행해 배터리 전력을 절약해야 한다. 이외에 여러 CPU 코어 또는 심지어 가능한 한 많은 사용자를 지원 가능하도록 효율적으로 여러 컴퓨터를 사용하는 방식으로 서버 애플리케이션을 프로그래밍해야 한다.

이런 애플리케이션을 만들 수 있으려면, 프로그램에서 효율적으로 여러 CPU 코어를 사용하는 방법을 배워야 한다. 마이크로소프트 닷넷 개발 플랫폼과 C# 프로그래밍 언어를 사용한다면, 이 책은 좋은 성능과 반응성이 갖는 애플리케이션을 프로그래밍하기 위한 완벽한 출발점이다.

이 책의 목표는 C# 멀티스레딩과 병렬 프로그래밍에 대한 단계별 안내를 제공하는 데 있다. 기본 개념을 시작으로 이전 장의 정보에 기반을 두면서 고급적인 주제를 점점 더 많이 살펴보고, 마지막 부분에서는 실제 병렬 프로그래밍 패턴과 윈도우 스토어 애플리케이션을 살펴본다.
(/ '지은이의 말' 중에서)

요즈음 대부분의 프로그래밍 언어들은 기본적인 문법사항 외에 멀티스레딩이나 병렬 프로그래밍을 위한 API 등의 내용도 충분히 문서화되어 있으므로 접근하기 쉽다. 프로그래밍 언어를 처음 공부했을 때를 떠올려보면, 아마도 당장 사용할 기회가 없기에 그냥 넘어갔던 적이 한두 번이 아니었을 것이다. 그래도 요즘에는 프레임워크가 잘 만들어져 있어 뒷단에서 어렵고 복잡한 부분을 알아서 처리해주니 얼마나 편한 세상인지 실감할 수도 있다.

바야흐로 인공지능 시대가 도래했지만 컴퓨터가 프로그램을 자동으로 만들어주는 것이 여전히 먼 미래의 이야기일 뿐, 결국 사람이 만들어야 한다는 사실 자체는 변함이 없다. 언젠가는 수많은 요청을 받아 끊임없이 처리해야 하는 상황에서 버그가 최대한 없도록 안정적으로 작동하는 프로그램을 개발해야 한다면 어떻게 해야 할지 고민하게 때가 한 번쯤은 찾아올 것이다. 이런 경우에는 기본기가 탄탄하고 쓰임새를 어느 정도 알고 있다는 전제에서 처음에는 고개를 절레절레 흔들겠지만, 관련 자료와 멋진 예제 코드만 있다면 프로그램의 성능을 최대한 좋게 만드는 실마리를 얻을 수 있다는 점에는 모두가 동의할 것이다. 그 자료는 책일 수도 있고 인터넷에 공개됐을 수도 있다. 이쯤에서 책은 저자의 경험이 잘 담겨 있으며, 수시로 참조할 수 있으니 더 낫지 않겠는가?

아무튼, C#을 갓 뗀 독자와 현업 개발자에게는 기본 문법을 알고 있다는 전제에서 다중 CPU와 코어를 최대한 활용해 프로그램의 성능을 끌어올리는 기법은 멀티스레딩, 태스크 병렬 라이브러리, PLINK, 반응형 확장 프레임워크 등 여러 가지다. 이들은 저마다 장단점이 있어 어떻게 적용할지 나름대로 판단하기가 애매할 수 있다. 이를 위해 저자는 자신만의 노하우를 바탕으로 스레드 기초부터 고급 주제인 병렬 프로그래밍기까지의 기법을 단계별로 정리하면서 적재적소에 적용할 수 있는 예제 코드와 간결한 설명을 이 책에 담아냈다. 또한 이 책은 따라 하기 방식을 채택한 기존 책과 달리 자신에게 필요한 내용과 코드를 직접 찾아 응용하며 항상 참고할 수 있게 구성했으므로 독자들에게 큰 도움이 될 것이다. 물론 깊은 내용을 전문적으로 다루거나 UI 위주로 다룬 책도 필요할 수 있으므로, [Essential C# 5.0 한국어판](에이콘출판, 2014)과 [C# Multithreaded and Parallel Programming](팩트출판사, 2014)을 함께 보는 것을 권한다.
(/ '옮긴이의 말' 중에서)

저자소개

유진 아가포노프(Eugene Agafonov) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

ABBYY 사의 웹 개발 부서를 이끌고 있으며, 모스크바에서 생활한다. 소프트웨어 전문 경력이 15년 이상이며, C#이 베타 버전일 때부터 개발을 시작했다. 2006년부터 ASP 닷넷 부문 마이크로소프트 MVP이고, '테크에드 러시아(TechEd Russia)' 같은 현지 소프트웨어 개발 콘퍼런스에서 최신 웹과 서버단 애플리케이션 개발 중심의 최첨단 기술에 대해 종종 발표한다. 주요 전문 분야는 클라우드 기반 소프트웨어 아키텍처, 확장성, 신뢰성이다. 열렬한 축구 팬이며 현지 락 밴드와 함께 기타를 연주한다. 개인 블로그(eugeneagafonov.com)나 트위터(@eugene_agafonov)를

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

관심 분야는 정보 검색이며, 매일 4시간 이상 걸리는 출퇴근 시간에 다방면의 원서를 읽는 쏠쏠한 즐거움에 빠져 사는 아날로그 세대다. 영상처리를 전공으로 석사를 마쳤고, 현재 문헌정보학 박사 과정에 있으며, 컴퓨터 비전 기반 IoT 솔루션 개발에 전념하고 있다. 오픈소스 자바 검색 엔진인 루씬(Lucene)에 관한 첫 국내서인 [루씬 인 액션](에이콘, 2005)을 공역했으며, 오픈소스 영상처리 라이브러리를 다룬 오픈소스 라이브러리 실무 시리즈 도서를 펴낸 저자로도 잘 알려져 있다. [MATLAB을 활용한 실용 디지털 영상처리](홍릉과학, 2005), [오픈소스 OpenCV를

펼쳐보기

이 상품의 시리즈

acorn+PACKT 시리즈(총 351권 / 현재구매 가능도서 322권)

펼쳐보기

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

    리뷰

    8.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

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

    교환/환불 가능 기간

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

    교환/환불 비용

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

    교환/환불 불가사유

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

    소비자 피해보상

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

    기타

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

    배송안내

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

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

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

    • 배송비

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

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

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

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

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

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

    업체직접배송상품 구매

    업체별 상이한 배송비 적용