장바구니 담기 close

장바구니에 상품을 담았습니다.

멀티스레드 기반 자바스크립트

멀티스레드 기반 자바스크립트

  • 토머스헌터2세 ,브라이언잉글리시
  • |
  • 루비페이퍼
  • |
  • 2022-06-15 출간
  • |
  • 272페이지
  • |
  • 170 X 232 mm
  • |
  • ISBN 9791186710838
판매가

24,000원

즉시할인가

21,600

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
21,600

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




이 책의 목표는 자바스크립트 멀티스레딩을 구현하기 위한 실무 지식을 제공하는 것입니다. 그간 자바스크립트 프로그램은 싱글 코어에 국한하여 개발되었고, 실제로 트위터나 개발자 포럼에서도 자바스크립트는 싱글 스레드 프로그램으로만 개발할 수 있다고 말하는 글이 많습니다. 이 책의 제목이 멀티스레드 기반 자바스크립트(Multithreaded JavaScript)인 것처럼, 자바스크립트 프로그램은 무조건 싱글 스레드로 개발해야 한다는 오해를 타파하고자 합니다.

그리고 세부 목표는 여러분께 자바스크립트 멀티스레딩을 구현할 때 고려해야 할 요소를 설명하는 것입니다. 이 책을 다 읽을 때쯤에는 브라우저 웹 워커 API의 사용법, 강/약점, 언제 어떤 API를 사용해야 할지를 이해하게 될 겁니다. 또한 Node.js의 워커 스레드 모듈 API는 브라우저 웹 워커와 어떠한 차이가 있는지 알게 될 겁니다.

- 멀티스레딩을 통해 성능을 향상하는 법
- 전용 워커, 공유 워커, 서비스 워커의 차이점
- 애플리케이션에서 스레드를 사용해야 할 때, 사용하지 않아야 할 때
- Atomics 객체를 활용한 스레드 통신 적용
- 애플리케이션 성능 향상을 위한 예시 코드 구현
- 멀티스레딩 성능에 대한 벤치마크


목차


CHAPTER 1 시작하며
1 스레드란?
2 동시성 vs 병렬성
3 싱글스레드 기반 자바스크립트
4 숨겨진 스레드
5 C언어의 스레드 : Happycoin으로 부자 되세요
__5.1 메인 스레드 1개로 구현하기
__5.2 워커 스레드 4개로 구현하기

CHAPTER 2 브라우저
1 전용 워커
__1.1 전용 워커를 사용한 Hello World 코드
__1.2 전용 워커 중급 버전
2 공유 워커
__2.1 공유 워커를 사용한 Hello World 코드
__2.2 공유 워커 중급 버전
3 서비스 워커
__3.1 서비스 워커를 사용한 Hello World 코드
__3.2 서비스 워커 중급 버전
4 메시지 패싱 개요
__4.1 RPC 패턴
__4.2 명령어 분배 패턴
__4.3 종합 버전

CHAPTER 3 Node.js
1 스레드가 없었을 시절
2 worker_threads 모듈
__2.1 workerData
__2.2 MessagePort
3 Happycoin 다시 보기
__3.1 메인 스레드 1개로 구현하기
__3.2 워커 스레드 4개로 구현하기
4 Piscina를 통한 워커 풀
5 Happycoin으로 가득 찬 풀

CHAPTER 4 공유 메모리
1 공유 메모리 입문
__1.1 브라우저에서 공유 메모리 사용하기
__1.2 Node.js의 공유 메모리
2 SharedArrayBuffer와 TypedArrays
3 데이터 가공을 위한 Atomic 메서드
4 원자성에 대한 논의
5 데이터 직렬화
__5.1 Boolean 타입
__5.2 문자열 타입
__5.3 객체 타입


CHAPTER 5 공유 메모리 중급
1 코디네이션을 위한 Atomic 메서드
__1.1 Atomics.wait()
__1.2 Atomics.notify()
__1.3 Atomics.waitAsync()
2 스레드가 깨어나는 타이밍과 예측 가능성
__2.1 비결정적 방식의 예시
__2.2 스레드 준비 여부 감지하기
3 예시 애플리케이션: 콘웨이의 생명 게임
__3.1 콘웨이의 생명 게임: 싱글 스레드 버전
__3.2 콘웨이의 생명 게임: 멀티스레드 버전
4 Atomics와 Events 객체

CHAPTER 6 멀티스레드 패턴
1 스레드 풀
__1.1 풀 크기
__1.2 작업 배정 전략
__1.3 예시 적용하기
2 뮤텍스: 록 기초
3 링 버퍼를 통한 데이터 스트리밍
4 액터 모델
__4.1 패턴 뉘앙스
__4.2 자바스크립트와의 관계
__4.3 예시 구현하기

CHAPTER 7 웹어셈블리
1 여러분의 첫 번째 웹어셈블리
2 웹어셈블리의 데이터 원자성 함수
3 Emscripten을 통해 C 코드 웹어셈블리로 컴파일하기
4 웹어셈블리 컴파일러: 기타
5 AssemblyScript
6 Happycoin: AssemblyScript로 구현하기

CHAPTER 8 분석
1 멀티스레딩을 적용하지 않아야 하는 경우
__1.1 메모리 크기가 작을 때
__1.2 코어 개수가 적을 때
__1.3 컨테이너 vs 스레드
2 멀티스레딩을 적용해야 하는 경우
3 주의사항 요약
부록: 구조화된 복제 알고리즘

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.