Многопоточный JavaScript. Конкурентность за пределами цикла событий

Многопоточный JavaScript. Конкурентность за пределами цикла событий

Многопоточный JavaScript. Конкурентность за пределами цикла событий
Автор: Инглиш Брайан, Хантер II Томас
Дата выхода: 2022
Издательство: ДМК Пресс
Количество страниц: 190
Размер файла: 1.5 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

От издательства....10

Вступительное слово....11

Предисловие....13

Об авторах....17

Об иллюстрации на обложке....18

Глава 1. Введение....19

Что такое потоки?....21

Конкурентность и параллелизм....22

Однопоточный Java­Script....24

Скрытые потоки....26

Потоки на C: обогатитесь с помощью криптовалюты Happycoin....28

С одним главным потоком....28

С четырьмя рабочими потоками....31

Глава 2. Браузеры....35

Выделенные исполнители....35

Выделенный исполнитель Hello World....36

Продвинутое использование выделенного исполнителя....39

Разделяемые исполнители....40

Разделяемый исполнитель Hello World....42

Продвинутое использование разделяемого исполнителя....46

Сервисные исполнители....48

Сервисный исполнитель Hello World....49

Продвинутые возможности сервисных исполнителей....54

Абстракции передачи сообщений....56

Паттерн RPC....57

Паттерн Диспетчер команд....58

Соберем все вместе....60

Глава 3. Node.js....66

Что было до потоков....67

Модуль worker_threads....69

workerData....70

MessagePort....70

И снова Happycoin....72

С одним главным потоком....73

С четырьмя потоками....75

Piscina – организация пула рабочих потоков....76

Полный пул Happycoin’ов....80

Глава 4. Разделяемая память....83

Введение в разделяемую память....83

Разделяемая память в браузере....84

Разделяемая память в Node.js....86

SharedArrayBuffer и типизированные массивы....88

Атомарные методы манипулирования данными....93

Atomics.add()....93

Atomics.and()....94

Atomics.compareExchange()....94

Atomics.exchange()....94

Atomics.isLockFree()....94

Atomics.load()....95

Atomics.or()....95

Atomics.store()....95

Atomics.sub()....95

Atomics.xor()....96

Несколько замечаний об атомарности....96

Сериализация данных....99

Булевы значения....99

Строки....100

Объекты....102

Глава 5. Дополнительные способы работы с разделяемой памятью....103

Атомарные методы координации....103

Atomics.wait()....104

Atomics.notify()....105

Atomics.waitAsync()....106

Хронометраж и недетерминированность....106

Пример недетерминированности....106

Определение готовности потока....109

Пример приложения: игра «Жизнь» Конвея....111

Однопоточная игра «Жизнь»....112

Многопоточная игра «Жизнь»....115

Атомарные операции и события....122

Глава 6. Паттерны многопоточного программирования....124

Пул потоков....124

Размер пула....125

Стратегии диспетчеризации....126

Пример реализации....128

Мьютекс: простая блокировка....133

Потоковая обработка данных с помощью кольцевых буферов....138

Модель акторов....145

Нюансы паттерна....145

Акторы в Java­Script....146

Пример реализации....147

Глава 7. WebAssembly....154

Ваша первая WebAssembly....154

Атомарные операции в WebAssembly....156

Компиляция с C на WebAssembly с помощью Emscripten....157

Другие компиляторы на WebAssembly....159

AssemblyScript....160

Happycoin на AssemblyScript....161

Глава 8. Анализ....166

Когда не стоит использовать потоки....166

Ограничения на объем памяти....167

Недостаточное число ядер....169

Контейнеры и потоки....172

Когда стоит использовать потоки....172

Подводные камни....177

Приложение. Алгоритм структурированного клонирования....179

Предметный указатель....182

Цель данной книги - научить читателя нескольким аспектам написания многопоточных JavaScript-приложений. Прочитав книгу до конца, вы будете понимать различные API веб-исполнителей в браузерах, их сильные и слабые стороны и когда какой использовать. Также узнаете о модуле рабочих потоков в Node.js и сможете сравнить его API с тем, что имеется в браузере.

Издание предназначено в первую очередь разработчикам, уже знакомым с JavaScript, но мало знакомым с многопоточным программированием.


Похожее:

Список отзывов:

Нет отзывов к книге.