| 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회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
이미 자바의 문법을 알고 있고, 쓰레드를 효율적으로 사용하고자 하는 중급 프로그래머들이 멀티 쓰레드 프로그래밍을 익힐 수 있도록 구성한 책이다. 쓰레드와 관련 라이브러리에 대한 상세한 설명을 담았으며 골치를 썩이던 여러 쓰레드 관련 문제들을 한 번에 해결해 줄 수 있도록 완성도 높은 쓰레드 패키지를 포함하고 있다.
어떻게 멀티 쓰레드 애플리케이션을 짜는가를 배우고 나면 자바 플랫폼의 이점을 최대로 사용할 수 있게 된다. 이미 유명한 컬럼리스트이자 자바 전문가인 Allen Holub은 이 책에 실제 멀티 쓰레드 프로그램에서 필요한 여러 정보들을 소스 코드와 함께 담아놓았다.
저자는 교착 상태나 경쟁 상태와 같은 일반적인 문제들을 어떻게 풀 수 있을지 매우 자세히 다뤄놓고 있다 .이런 일반적인 문제들 뿐아니라 연습용 프로그램부터 상업용 소프트웨어까지 적용될 수 있는 여러 문제들에 대한 해결책들을 제시하고 있다.
쓰레드는 자바로 프로그래밍을 하는 데 있어서 이미 필수적인 부분이 되어버렸다. 예를 들어, 그래픽 사용자 인터페이스를 사용하는 모든 자바 프로그램은 멀티 쓰레드로 작동한다. 이 책에서 필자는 실제 상황에서 자바로 쓰레드를 사용할 때 생길 수 있는 문제를 중심으로 효율적인 쓰레드 프로그래밍을 하기 위해 알아야 할 것들을 다루었다.
이 책을 통해 독자들은 쓰레드 프로그래밍 대부분의 문제를 해결할 수 있는 "쓰레드 관리 툴킷"과 아키텍쳐를 터득할 수 있다. 또한, 자바의 쓰레드 모델을 이해할 수 있다.
이 책은 온라인 잡지인 자바월드(http://www.javaworld.com)의 "자바 툴킷"이라는 컬럼에 연재했던 내용에 기반을 두고 있다. 이 책에서 사용한 코드들은 이 컬럼에 제시했던 코드들을 완전히 다시 쓴 것이다. 이와 더불어 많은 기능들을 추가했다.
정보제공 :
목차
목차 시작하기 전에 = 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
