HOME > 상세정보

상세정보

자바 쓰레드 능숙하게 다루기

자바 쓰레드 능숙하게 다루기 (11회 대출)

자료유형
단행본
개인저자
Holub, Allen I. 천영환, 역
서명 / 저자사항
자바 쓰레드 능숙하게 다루기 / Allen Holub 저 ; 천영환 역
발행사항
서울 :   인포북,   2001  
형태사항
383 p. : 삽화 ; 25 cm
원표제
Taming java threads
ISBN
8980544383
일반주기
색인수록  
일반주제명
Java (Computer program language) Threads (Computer programs)
000 00000nam c2200205 c 4500
001 000000716135
005 20170601113915
007 ta
008 010907s2001 ulka 001c kor
020 ▼a 8980544383 ▼g 93000
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
049 1 ▼l 111193830 ▼f 개가
082 0 4 ▼a 005.133 ▼2 21
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b 2001zz
100 1 ▼a Holub, Allen I.
245 1 0 ▼a 자바 쓰레드 능숙하게 다루기 / ▼d Allen Holub 저 ; ▼e 천영환 역
246 1 9 ▼a Taming java threads
260 ▼a 서울 : ▼b 인포북, ▼c 2001
300 ▼a 383 p. : ▼b 삽화 ; ▼c 25 cm
500 ▼a 색인수록
650 ▼a Java (Computer program language)
650 0 ▼a Threads (Computer programs)
700 1 ▼a 천영환, ▼e

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.133 2001zz 등록번호 111193830 (11회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

이미 자바의 문법을 알고 있고, 쓰레드를 효율적으로 사용하고자 하는 중급 프로그래머들이 멀티 쓰레드 프로그래밍을 익힐 수 있도록 구성한 책이다. 쓰레드와 관련 라이브러리에 대한 상세한 설명을 담았으며 골치를 썩이던 여러 쓰레드 관련 문제들을 한 번에 해결해 줄 수 있도록 완성도 높은 쓰레드 패키지를 포함하고 있다.

어떻게 멀티 쓰레드 애플리케이션을 짜는가를 배우고 나면 자바 플랫폼의 이점을 최대로 사용할 수 있게 된다. 이미 유명한 컬럼리스트이자 자바 전문가인 Allen Holub은 이 책에 실제 멀티 쓰레드 프로그램에서 필요한 여러 정보들을 소스 코드와 함께 담아놓았다.

저자는 교착 상태나 경쟁 상태와 같은 일반적인 문제들을 어떻게 풀 수 있을지 매우 자세히 다뤄놓고 있다 .이런 일반적인 문제들 뿐아니라 연습용 프로그램부터 상업용 소프트웨어까지 적용될 수 있는 여러 문제들에 대한 해결책들을 제시하고 있다.

쓰레드는 자바로 프로그래밍을 하는 데 있어서 이미 필수적인 부분이 되어버렸다. 예를 들어, 그래픽 사용자 인터페이스를 사용하는 모든 자바 프로그램은 멀티 쓰레드로 작동한다. 이 책에서 필자는 실제 상황에서 자바로 쓰레드를 사용할 때 생길 수 있는 문제를 중심으로 효율적인 쓰레드 프로그래밍을 하기 위해 알아야 할 것들을 다루었다.

이 책을 통해 독자들은 쓰레드 프로그래밍 대부분의 문제를 해결할 수 있는 "쓰레드 관리 툴킷"과 아키텍쳐를 터득할 수 있다. 또한, 자바의 쓰레드 모델을 이해할 수 있다.

이 책은 온라인 잡지인 자바월드(http://www.javaworld.com)의 "자바 툴킷"이라는 컬럼에 연재했던 내용에 기반을 두고 있다. 이 책에서 사용한 코드들은 이 컬럼에 제시했던 코드들을 완전히 다시 쓴 것이다. 이와 더불어 많은 기능들을 추가했다.


정보제공 : Aladin

저자소개

Allen Holub(지은이)

<자바 쓰레드 능숙하게 다루기>

천영환(옮긴이)

<JAVA Programming Bible for JDK 1.3>

정보제공 : Aladin

목차


목차
시작하기 전에 = 13
Chapter 1 쓰레드 아키텍처
 쓰레드의 문제점 = 17
  실제로 사용되는 모든 자바 프로그램은 멀티 쓰레드를 사용한다. = 18
  자바의 쓰레드에 대한 지원은 플랫폼에 독립적이지 않다. = 21
 쓰레드와 프로세스 = 22
 쓰레드 안전성과 동기화 = 23
  동기화는 비효율적이다. = 25
  동기화 피하기 = 30
 동시적인 처리. 어떻게 해야 할까? = 36
 실제로 사용되는 쓰레드 모델들 = 37
 협력하라! = 41
  협력형 멀티 쓰레드 모델 = 41
  선점형 멀티 쓰레드 모델 = 42
  커널 쓰레드를 사용자 프로세스로 매핑하기 = 43
 이 장을 마치며 = 46
Chapter 2 고난의 멀티 쓰레드 프로그래밍
 모니터와 상호 배제 세마포어(뮤텍스, Mutex) = 47
 경쟁상태와 스핀 락 = 50
  Spin_lock 클래스 = 57
 쓰레드는 객체가 아니다 = 62
 교착상태(Deadlock) = 64
 실전! 교착상태 = 66
 중첩된 모니터에 의한 교착상태 = 69
  동기화 랩퍼 = 71
 타임아웃 = 71
  코딩 스타일에 대한 여담 = 76
 supend() 메소드가 더 이상 사용되지 않는 이유 = 79
 블록킹 I/O에서의 교착상태 = 81
 쓰레드 멈추기 = 84
 기아 상태(Starvation)와 run()에 대한 동기화 = 85
 volatile 키워드 = 88
 예외와 쓰레드 = 89
 이 장을 마치며 = 92
Chapter 3 뮤텍스와 락 관리
 synchronized 만으로 해결할 수 없는 문제들 = 93
 synchronized를 넘어서서 = 95
 비법 공개, 세마포어 제작 : Semaphore 인터페이스 = 97
  여담 : 부치 유틸리티(Booch Utility)와 전략(Strategy) = 104
 관리가능한 뮤텍스 클래스 만들기 = 107
 이 장을 마치며 = 114
Chapter 4 조건 변수와 카운팅 세마포어(Counting Semaphore)
 조건 변수 = 115
  조건 변수와 wait() = 116
  무적의 해결사 : 조건 변수 = 120
  조건 변수 구현하기 = 128
 조건 변수 집합 : 여러 조건 기다리기 = 137
 자원 풀을 위한 카운팅 세마포어 = 146
 이 장을 마치며 = 155
Chapter 5 Timer, Alarm 그리고 스윙의 쓰레드 안전성
 왜 Timer를 쓰는가? = 157
 스윙과 쓰레드 : 스윙은 쓰레드에 안전하지 않다. = 159
  invokeLater()와 invokeAndWait() 메소드 = 162
 스윙 Timer 길들이기 = 163
  Timer 작동의 실체를 밝혀라 = 165
  언제 Timer를 쓸까? = 167
 자체제작, Alarm 클래스 = 168
  Alarm의 구조 = 171
  "통지"의 실체를 밝힌다. = 174
  Alarm 재시작하기(쓰레드 멈추기) = 177
  잠시 멈추기 = 180
  Notifier의 문제점 = 180
  단위 테스트 = 195
 이 장을 마치며 = 196
Chapter 6 관찰자(Observers)와 멀티캐스터(Multicasters)
 멀티 쓰레드 환경에서 관찰자 구현하기 = 197
 관찰자 입장에서의 문제점 : 내부 클래스의 동기화 = 200
 통지자 입장에서의 문제점 : 멀티 쓰레드 환경에서의 통지 = 203
 AWTEventMulticaster의 비밀 = 214
  불변객체와 초기화되지 않은 final = 215
  멀티캐스터 사용하기 = 217
 멀티캐스터 만들기 = 219
Chapter 7 싱글톤, 임계 영역 그리고 읽기 / 쓰기 락
 임계 영역(Critical Section), 싱글톤 그리고 "클래스 객체" = 277
  정적 멤버 = 228
 싱글톤(Singletons) = 234
  다중 CPU 환경에서의 임계 영역, 이중 체크 락 그리고 캐시와 관련된 문제점 = 237
  예제로 이해하는 싱글톤 : Std 클래스 = 240
  싱글톤 닫기 = 251
 읽기 / 쓰기 락 = 253
 이 장을 마치며 = 266
Chapter 8 객체 지향적 관점에서의 쓰레드
 객체 지향 시스템에서의 쓰레드 모델링 = 268
  동기 메시지와 비동기 메시지 = 269
  메소드 당 하나의 쓰레드를 사용해서 비동기 메시지 구현하기 = 270
  출동, 예외를 처리하라! = 277
 쓰레드 풀과 블록킹 큐 = 278
  블록킹 큐 = 280
  쓰레드 풀장에서 헤엄치기 = 292
  매개변수 넘기기 = 293
  인트로스펙션을 이용한 매개변수 넘기기 = 295
  쓰레드 풀 구현하기 = 301
  쓰레드 풀 사용하기 = 312
 소켓과 쓰레드 풀 = 313
 이 장을 마치며 = 327
Chapter 9 객체 지향적 쓰레드 아키텍쳐
 리액터(Reactor)와 활성 객체(Active Object) = 329
 동기적인 디스패쳐와 라운드 로빈(Round robin) 스케줄링 : 리액터(Reactor)와 프로액터(Proactor) = 331
 비동기적인 디스패치 : 활성 객체(Active Object) = 343
  범용적인 해결책 = 345
  정돈된 콘솔 출력을 위해 = 351
 이 장을 마치며 = 358
Chapter 10 내가 만약 왕이라면 : 자바의 쓰레딩 모델 고치기
 태스크의 도입 = 360
 synchronized의 개선 = 363
 wait()와 notify()의 개선 = 365
 Thread 클래스의 문제점 보완 = 366
 쓰레드 간의 공동작업 = 367
 읽기 / 쓰기 락에 대한 지원 = 368
 생성중인 객체에 대한 접근 거부 = 369
 volatile 키워드의 올바른 동작 = 371
 접근에 대한 개선 = 372
  불변성에 대한 지원 강화 = 373
  클래스 필드에 대한 인스턴스 차원의 접근 제한 = 374
 싱글톤에 대한 개선 = 376
 데몬 쓰레드의 안전한 종료 = 377
 stop(), suspend(), resume()의 부활 = 377
 블록킹 I/O의 개선 = 379
 ThreadGroup 클래스의 보완 = 379
 이 장을 마치며 = 379
찾아보기 = 381


관련분야 신착자료

Harvard Business Review (2025)