멀티스레드 기반 자바스크립트
Multithreaded JavaScript
자바스크립트로 멀티스레드 애플리케이션을 구현해야 하는 개발자에게 브라우저의 웹 워커 API, Node.js의 워커 스레드 모듈에 대한 장단점을 소개합니다. 이 책에서는 멀티스레드 애플리케이션 구현에 활용할 수 있는 두 가지 접근법을 제시합니다. 첫 번째는 메시지 패싱, 두 번째는 공유 메모리입니다. 이를 구현하기 위한 API뿐만 아니라, 메시지 패싱 및 공유 메모리를 활용하기에 적합한 상황, 그리고 두 접근법을 모두 활용할 수 있는 상황을 설명합니다. 또한, 관련된 고수준의 프로그래밍 패턴도 소개합니다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
그리고 세부 목표는 여러분께 자바스크립트 멀티스레딩을 구현할 때 고려해야 할 요소를 설명하는 것입니다. 이 책을 다 읽을 때쯤에는 브라우저 웹 워커 API의 사용법, 강/약점, 언제 어떤 API를 사용해야 할지를 이해하게 될 겁니다. 또한 Node.js의 워커 스레드 모듈 API는 브라우저 웹 워커와 어떠한 차이가 있는지 알게 될 겁니다.
- 멀티스레딩을 통해 성능을 향상하는 법
- 전용 워커, 공유 워커, 서비스 워커의 차이점
- 애플리케이션에서 스레드를 사용해야 할 때, 사용하지 않아야 할 때
- Atomics 객체를 활용한 스레드 통신 적용
- 애플리케이션 성능 향상을 위한 예시 코드 구현
- 멀티스레딩 성능에 대한 벤치마크
목차
목차
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 주의사항 요약
부록: 구조화된 복제 알고리즘
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

