멀티스레드 기반 자바스크립트 (Multithreaded JavaScript)

멀티스레드 기반 자바스크립트 (Multithreaded JavaScript)

$24.00
Description
자바스크립트로 멀티스레드 애플리케이션을 구현해야 하는 개발자에게 브라우저의 웹 워커 API, Node.js의 워커 스레드 모듈에 대한 장단점을 소개합니다. 이 책에서는 멀티스레드 애플리케이션 구현에 활용할 수 있는 두 가지 접근법을 제시합니다. 첫 번째는 메시지 패싱, 두 번째는 공유 메모리입니다. 이를 구현하기 위한 API뿐만 아니라, 메시지 패싱 및 공유 메모리를 활용하기에 적합한 상황, 그리고 두 접근법을 모두 활용할 수 있는 상황을 설명합니다. 또한, 관련된 고수준의 프로그래밍 패턴도 소개합니다.
저자

토머스헌터2세

엔터프라이즈용Node.js서비스개발에참여해왔으며,Node.js보안관련회사에서근무했습니다.또한Node.js및자바스크립트콘퍼런스발표경험이다수있으며,JSNSD/JSNAD자격을취득했고,NodeSchoolSF커뮤니티창립위원입니다.

목차

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

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

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

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


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

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

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

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

출판사 서평

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

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

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