Изменение пароля
Пользователь
anonymous
Текущий пароль
*
Новый пароль
*
Подтверждение
*
Запомнить меня
Забыли пароль?
Электронная библиотека (16+)
Впервые на сайте?
Вход
/
Регистрация
Национальный цифровой ресурс
Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 615053)
Для выхода нажмите Esc или
Многопоточный JavaScript (4000,00 руб.)
0
0
Первый автор
Хантер II Томас
Авторы
Инглиш Брайан
Издательство
М.: ДМК Пресс
Страниц
190
Предпросмотр
ID
810373
Аннотация
Цель данной книги – научить читателя нескольким аспектам написания многопоточных JavaScript-приложений. Прочитав книгу до конца, вы будете понимать различные API веб-исполнителей в браузерах, их сильные и слабые стороны и когда какой использовать. Также узнаете о модуле рабочих потоков в Node.js и сможете сравнить его API с тем, что имеется в браузере.
Кому рекомендовано
Издание предназначено в первую очередь разработчикам, уже знакомым с JavaScript, но мало знакомым с многопоточным программированием.
ISBN
978-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 (дата обращения: 28.07.2025)
Популярные
Введение в теорию игр: учебное пособие
110,00 руб
Уроки развивающей математики. 5–6 классы...
100,00 руб
Этика и права человека в информационном ...
220,00 руб
Краткий курс теории вероятностей
220,00 руб
Системный администратор №9 2024
300,00 руб
Системный администратор №1 2024
300,00 руб
Вы уже смотрели
Компас №3 2014
145,20 руб
Инфекционные болезни №4 2008
396,00 руб
Макрогетероциклы
46000,00 руб
Художественный перевод как вид межкульту...
1500,00 руб
Физическая культура
250,00 руб
Десятилетняя изменчивость характеристик ...
150,00 руб
Предпросмотр (выдержки из произведения)
Резюме документа
Страницы
Текст
Многопоточный_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
Облако ключевых слов *
* - вычисляется автоматически
Мы используем куки, чтобы сделать сайт удобней для вас.
Подробнее
Хорошо