메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

Win32 멀티스레드 프로그래밍

Win32 멀티스레드 프로그래밍

한빛미디어

번역서

절판

  • 저자 : 애런 코헨 , 마이크 우드링
  • 번역 : 김기정
  • 출간 : 2001-03-23
  • 페이지 : 816 쪽
  • ISBN : 8979141009
  • 물류코드 :1100
  • 초급 초중급 중급 중고급 고급
3점 (1명)
좋아요 : 15

최근 윈도우 95, 98과 NT 또는 리눅스처럼 멀티스레드를 지원하는 운영체제가 증가해서 좀더 쉽게 스레드를 이용한 프로그램을 작성할 수 있게 되었다. 멀티스레드 프로그래밍은 고급 프로그래머뿐만 아니라 일반적인 프로그래머에게도 기본적인 기술로 관심을 얻고 있으며, 이제 멀티스레드 프로그래밍은 프로그래머라면 반드시 알아야 할 기술로 자리잡고 있다.

이 책은 Win32의 멀티스레드 프로그래밍을 자세하게 설명하고 있는 전문 서적이다. Win32가 POSIX 스레드와 같은 표준적인 스레드를 지원하고 있지는 않지만, Win32 스레드에 사용되는 뮤텍스, 세마포어와 같은 동기화 기법들은 일반적으로 스레드를 지원하는 운영체제가 제공하는 공통적인 개념이다. 따라서 멀티스레드 프로그래밍에서 중요한 것은 문법이 아니라 스레드의 동작 원리에 대한 개념을 이해하는 것이기 때문에 스레드 프로그래밍의 기본 요소와 핵심 개념을 깊이 이해하고, 나아가서 리눅스, 유닉스와 같은 다른 플랫폼에서도 스레드 프로그래밍을 할 수 있는 기본 소양을 얻을 수 있다.

이 책은 스레드 프로그래밍에서 가장 중요한 동기화 부분에 대부분의 지면을 할애하고 있다. 이와 더불어 Win32 스레드를 C++ 클래스 라이브러리로 재구성하여 Mcl이라는 라이브러리를 제공하고 있다. 이 라이브러리를 제공함으로써 훨씬 쉽게 멀티스레드 프로그래밍을 할 수 있고, 디버깅하는데 필요한 시간을 줄일 수 있다. 이 책의 가장 큰 장점은 수많은 예제를 제공한다는 점에 있다. 먼저 기본적인 개념을 설명하고, 대부분의 경우에 간결한 예제 프로그램을 덧붙여서 제공한다. 실제로 이런 예제 프로그램을 실행해보면 좀더 쉽게 멀티스레드 프로그래밍의 개념에 접근할 수 있다.

이 책의 주요 내용

이 책에서는 멀티스레드 프로그래밍의 개념을 알아보고, 멀티스레드를 이용하여 효율적이고 복잡한 응용 프로그램을 능숙하게 작성할 수 있도록 도와준다. 또한 멀티스레드 프로그래밍의 원리를 보여주기 위해서 뮤텍스나 세마포어를 사용하는 기초적 스레드 동기화에서부터 다시 사용할 수 있는 스레드 풀을 만들거나 유예된 처리 큐를 구현하는 고급 주제까지 실제 응용 프로그램과 주의 깊게 작성된 예제를 사용하여 설명하고 있다. 몇 가지 주제를 소개하면 다음과 같다.

  • 윈도우 운영체제가 스레드를 다루는 방법
  • Win32 API 멀티스레딩 도구
  • 스레드에 안전한 동적 연결 내장 함수(DLL)를 제작하는 기법
  • 스레드 동기화의 고급 기법
  • 스레드 동기화의 기본 시나리오
  • 멀티스레드 사용자 인터페이스를 제작하는데 사용하는 공통된 디자인
  • 멀티스레드 응용 프로그램의 오류 수정 작업
이 책에 포함된 CD-ROM은 멀티스레드 프로그래밍을 위한 저자의 C++ 내장 함수 Mcl을 포함하고 있다. Mcl은 멀티스레드 API 함수의 래퍼로 복잡한 멀티스레드 시나리오를 간단히 지원할 수 있게 해 준다. MFC를 사용하는 프로그래머에게는 MFC와의 호환성을 위해서 Mcl4Mfc 내장 함수를 추가로 제공한다.

애런 마이클 코헨 저자

애런 마이클 코헨

애런 마이클 코헨은 1977년 취미로 RCA 1802라는 단일 보드 마이크로 컴퓨터로 컴퓨터 프로그래밍을 시작했고, 1980년대 초반 의과대학에 다니면서 Atari 800, 매킨토시, IBM PC와 같은 여러 환경의 컴퓨터 플랫폼을 다루어 보았다. 자신이 프로그래밍에 재능이 있다는 사실을 깨달은 그는 의대를 떠나서 소프트웨어 개발 분야에서 자신의 경력을 쌓기로 결심했다. 첫 직업으로 컴퓨터에 기반한 고해상도의 이미지와 비디오 압축을 요구하는 의학 영상에 관련된 일을 하였다.
현재 그는 인텔에서 윈도우 95와 NT를 사용해서 화상 회의 시스템을 개발하는 작업을 하고 있다. 애런은 공학에 관련된 지식이 있으며, 미시건 대학에서 의학 박사 학위를 취득하였다.

마이크 우드링 저자

마이크 우드링

마이크 우드링은 윈도우 3.0 시절부터 인텔 플랫폼에서 디바이스 드라이버, DLL, 윈도우 애플리케이션을 프로그래밍했다.
인텔의 소프트웨어 시스템 선임 연구원으로 있을 때 전화, 인터넷, 화상 회의 기능이 있는 제품을 위해서 C++로 실시간 ISDN 통신 소프트웨어를 개발했다. 현재 마이크는 독립적으로 컨설팅 업무를 하고 있으며 Win32 프로그래밍을 가르치고 있다. 마이크는 몬타나 주립대학에서 컴퓨터공학 학사 학위를 취득하였다.

김기정 역자

김기정

1998년 서울대학교 전기공학부를 졸업했고, 현재는 서울대학교 의료 전자 연구실 박사 과정 중에 있다.
자바 가상 머신(JVM) Kaffe 포팅과 초음파 진단기용 임베디드 파일시스템(VFAT)을 구축하는 프로젝트와 JVM Kaffe를 Arx 운영체제에 포팅, GE사의 초음파 진단기용 임베디드 파일시스템(VFAT)을 구축하는 프로젝트를 수행하였다.

역자 서문
차례
서문

1장. 소개


멀티스레드 프로그래밍이란 무엇인가?
왜 멀티스레드 프로그램을 작성하는가?
스레드를 사용하면 안 되는 경우
멀티스레드 프로그래밍으로 넘어가기 

2장. 스레드 스케줄링과 기본 개념

스레드 스케줄링
멀티스레드 프로그래밍 개념

3장. 프로세스와 스레드 API

커널 객체
프로세스
스레드 역학
프로세스 수명에 대한 재조명

4장. 스레드 동기화 방법

Interlocked 함수
임계 영역
WaitForSingleObject와 WaitForMultipleObjects 함수
뮤텍스
세마포어
이벤트

5장. 스레드간 통신

공유 메모리와 메모리 맵 파일
익명 파이프
스레드와 메시지 처리
MsgWaitForMultipleObjects 함수

6장. Mcl: 멀티스레드 프로그래밍을 위한 C++ 클래스 라이브러리

CMcl 라이브러리 클래스 계층도
CMcl 클래스 라이브러리 구현

7장. Mcl: 상위 레벨 클래스

CMclShreadMemory
CMclLinkedLists
CMclMailBox
CMclMonitor
CMcl 클래스 라이브러리를 위한 Makefile

8장. 기초적 스레드 동기화

자원의 상호 배제
단일 허용 관문
경계적 대기
제한된 자원에 대한 경쟁
생산자와 소비자 문제의 변형

9장. 고급 캡슐화 기법

객체와 스레드 동기화
스레드 로컬 저장소

10장. 고급 스레드 관리 기법

요구에 따른 스레드
스레드 풀

11장. 멀티스레드 프로그램에서의 DLL

32 비트 DLL의 상세 분석과 의미 구조
DllMain 함수
함수와 데이터의 익스포팅
함수와 데이터의 임포팅
신중한 형태의 DLL을 구현하기
DLL에서의 정적 C++ 객체와 전역 C++ 객체

12장. 멀티스레드 사용자 인터페이스와 MFC

Win32 윈도우 시스템의 기본 구조
멀티스레드 프로그램과 사용자 인터페이스
왜 MFC를 사용하는가?
멀티스레드 프로그램에서 MFC 사용하기
MFC 프로그램에서 Mcl 사용하기
Mcl4Mfc 클래스 라이브러리

13장. 기초적인 멀티스레드 GUI 설계

세 가지 기본 디자인 패턴
스스로 움직이는 컨트롤
식사하는 철학자 문제의 애니메이션을 이용한 시뮬레이션
자발적인 다이얼로그 박스

14장. 구조적 예외 처리

구조적 예외 처리의 개요
구조적 예외 처리의 일반적인 사용 예
예외 처리를 위한 전략
C++와 구조적 예외 처리의 혼용

15장. 멀티스레드 프로그램 디버깅

병렬적으로 사고하기
하이젠버그 불확실성 원리
코드를 단계별로 훑어라
비주얼 C++ 스레드와 콜스택 윈도우 사용하기
어떤 것이 주 스레드인가?
어떤 스레드를 디버깅하는지 파악해라
디버깅하는 동안 발생하는 문맥 교환에 주의해라
시간은 디버거 안에서도 기다리지 않는다
어떤 스레드가 어떤 윈도우를 소유하고 있는지 파악해라
OutputDebugString을 사용해라
메모리를 나눠라

후기

부록 A
부록 B
찾아보기

멀티스레딩...



프로그래밍을 하는 사람중에 초급에서 중수로 넘어가는 입장이라면



간과할수 없는 파트이다.



하나의 작업에 묶여있지 않고 오랜시간이 걸리는 작업이나 멈춰있어야 하는 작업들을



다른 그룹으로 묶어 여러가지 일을 동시에 진행하는데 필요한 부분이 스레드이다.



워드에서 프린트를 하는 도중에도 문서편집작업을 할수있다면 쉽게 이해가 될듯싶다.



하나의 프로그램에서 여러가지 작업을 하게되면 필연적으로 문제가 생기기 마련인데...



무엇때문인고 하니 사과를 자른다고 생각하면 사과를 자르면서 바로 먹을수 있지만



그 와중에 자르지 않은 사과의 조각에 손을 갖다데면 베여버릴 위험이 있다는...



(비유가 좀 부적절할지도 모르겠지만 ^^;)



이책에서는 스레드의 사용법과 스레드로 인해 파생되는 문제점을 해결하는 방식에



대해 서술하고 있다.



국내서적중에 스레드에 대해 심도있게다룬책이 별로 없어 적당한 비교하는게 부적절 하지만...



각종 문서를 통해 접한 내용에 크게 벗어남은 없다.



결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
Win32 멀티스레드 프로그래밍
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Win32 멀티스레드 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Win32 멀티스레드 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실