Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634932)
Контекстум
Руконтекст антиплагиат система

Многопоточный JavaScript (4000,00 руб.)

0   0
Первый авторХантер II Томас
АвторыИнглиш Брайан
ИздательствоМ.: ДМК Пресс
Страниц190
ID810373
АннотацияЦель данной книги – научить читателя нескольким аспектам написания многопоточных JavaScript-приложений. Прочитав книгу до конца, вы будете понимать различные API веб-исполнителей в браузерах, их сильные и слабые стороны и когда какой использовать. Также узнаете о модуле рабочих потоков в Node.js и сможете сравнить его API с тем, что имеется в браузере.
Кому рекомендованоИздание предназначено в первую очередь разработчикам, уже знакомым с JavaScript, но мало знакомым с многопоточным программированием.
ISBN978-5-93700-129-0 (рус.)
УДК004.42
ББК32.972
Хантер II, Т. . Многопоточный JavaScript / Б. . Инглиш; Т. . Хантер II .— Москва : ДМК Пресс, 2022 .— 190 с. : ил. — ISBN 978-1-098-10443-6 (англ.) .— ISBN 978-5-93700-129-0 (рус.) .— URL: https://rucont.ru/efd/810373 (дата обращения: 29.04.2024)

Предпросмотр (выдержки из произведения)

Многопоточный_JavaScript.pdf
Стр.5
Стр.7
Стр.8
Стр.9
Многопоточный_JavaScript.pdf
УДК 004.42 ББК 32.972 Х19 Х19 Многопоточный JavaScript / пер. с англ. А. А. Слинкина. – М.: ДМК Пресс, 2022. – 188 с.: ил. Хантер II Т., Инглиш Б. ISBN 978-5-93700-129-0 Цель данной книги – научить читателя нескольким аспектам написания многопоточных JavaScript-приложений. Прочитав книгу до конца, вы будете понимать различные API веб-исполнителей в браузерах, их сильные и слабые стороны и когда какой использовать. Также узнаете о модуле рабочих потоков в Node.js и сможете сравнить его API с тем, что имеется в браузере. Издание предназначено в первую очередь разработчикам, уже знакомым с JavaScript, но мало знакомым с многопоточным программированием. УДК 004.42 ББК 32.972 Authorized Russian translation of the English edition of Multithreaded JavaScript ISBN 9781098104436. Copyright © 2022 Thomas Hunter II and Bryan English. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-098-10443-6 (англ.) ISBN 978-5-93700-129-0 (рус.) © Thomas Hunter II and Bryan English, 2022 © Перевод, оформление, издание, ДМК Пресс, 2022
Стр.5
Содержание От издательства ......................................................................................................9 Вступительное слово .........................................................................................10 Предисловие ..........................................................................................................12 Об авторах ..............................................................................................................16 Об иллюстрации на обложке .........................................................................17 Глава 1. Введение ................................................................................................18 Что такое потоки? ......................................................................................................20 Конкурентность и параллелизм ...............................................................................21 Однопоточный Java Script ..........................................................................................23 Скрытые потоки .........................................................................................................25 Потоки на C: обогатитесь с помощью криптовалюты Happycoin .......................27 С одним главным потоком ...................................................................................27 С четырьмя рабочими потоками .........................................................................30 Глава 2. Браузеры ................................................................................................34 Выделенные исполнители ........................................................................................34 Выделенный исполнитель Hello World ...............................................................35 Продвинутое использование выделенного исполнителя ................................38 Сервисные исполнители ...........................................................................................47 Сервисный исполнитель Hello World ..................................................................48 Продвинутые возможности сервисных исполнителей ....................................53 Абстракции передачи сообщений ...........................................................................55 Паттерн RPC ............................................................................................................56 Паттерн Диспетчер команд ..................................................................................57 Соберем все вместе ................................................................................................59 Глава 3. Node.js .....................................................................................................65 Что было до потоков ..................................................................................................66 Модуль worker_threads ...............................................................................................68 workerData ...............................................................................................................69 MessagePort .............................................................................................................69 И снова Happycoin ......................................................................................................71 С одним главным потоком ...................................................................................72 Разделяемые исполнители .......................................................................................39 Разделяемый исполнитель Hello World ..............................................................41 Продвинутое использование разделяемого исполнителя ..............................45
Стр.7
Содержание  7 С четырьмя потоками ...........................................................................................74 Piscina – организация пула рабочих потоков ........................................................75 Полный пул Happycoin’ов .........................................................................................79 Глава 4. Разделяемая память ........................................................................82 Введение в разделяемую память .............................................................................82 Разделяемая память в браузере ...........................................................................83 Разделяемая память в Node.js ..............................................................................85 SharedArrayBuffer и типизированные массивы .....................................................87 Атомарные методы манипулирования данными .................................................92 Atomics.add() ...........................................................................................................92 Atomics.and() ...........................................................................................................93 Atomics.compareExchange() ..................................................................................93 Atomics.exchange() .................................................................................................93 Atomics.isLockFree() ...............................................................................................93 Atomics.load() ..........................................................................................................94 Atomics.or() .............................................................................................................94 Atomics.store() ........................................................................................................94 Atomics.sub() ...........................................................................................................94 Atomics.xor()............................................................................................................95 Несколько замечаний об атомарности ...................................................................95 Сериализация данных ...............................................................................................98 Булевы значения ....................................................................................................98 Строки .....................................................................................................................99 Объекты .................................................................................................................101 Глава 5. Дополнительные способы работы с разделяемой памятью ..................................................................................................................102 Атомарные методы координации .........................................................................102 Atomics.wait() ........................................................................................................103 Atomics.notify() .....................................................................................................104 Atomics.waitAsync() ..............................................................................................105 Хронометраж и недетерминированность ............................................................105 Пример недетерминированности .....................................................................105 Определение готовности потока .......................................................................108 Пример приложения: игра «Жизнь» Конвея ........................................................110 Однопоточная игра «Жизнь» .............................................................................111 Многопоточная игра «Жизнь» ...........................................................................114 Атомарные операции и события ...........................................................................121 Глава 6. Паттерны многопоточного программирования ..............123 Пул потоков ...............................................................................................................123 Размер пула...........................................................................................................124 Стратегии диспетчеризации ..............................................................................125 Пример реализации ............................................................................................127 Мьютекс: простая блокировка ...............................................................................132
Стр.8
8  Содержание Потоковая обработка данных с помощью кольцевых буферов ........................137 Модель акторов ........................................................................................................144 Нюансы паттерна .................................................................................................144 Акторы в Java Script ..............................................................................................145 Пример реализации ............................................................................................146 Глава 7. WebAssembly.......................................................................................153 Ваша первая WebAssembly ......................................................................................153 Атомарные операции в WebAssembly ...................................................................155 Компиляция с C на WebAssembly с помощью Emscripten ..................................156 Другие компиляторы на WebAssembly .................................................................158 AssemblyScript ...........................................................................................................159 Happycoin на AssemblyScript ...................................................................................160 Глава 8. Анализ ....................................................................................................165 Когда не стоит использовать потоки.....................................................................165 Ограничения на объем памяти ..........................................................................166 Недостаточное число ядер .................................................................................168 Контейнеры и потоки ..........................................................................................171 Когда стоит использовать потоки ..........................................................................171 Подводные камни ....................................................................................................176 Приложение. Алгоритм структурированного клонирования ......178 Предметный указатель ...................................................................................181
Стр.9

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ