Семь моделей конкуренции и параллелизма за семь недель

Батчер Пол

Код товара: 1927006
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 3
PDF
-35%
1 326
2 040
Доставим в
г. Москва
Планируемая дата
30 марта (Сб)
Курьером
Л-Пост
бесплатно от 3 500 ₽
В пункт выдачи
от 77 ₽
бесплатно от 2 000 ₽
Точная стоимость доставки рассчитывается при оформлении заказа
Издательство:
ДМК-Пресс
Оригинальное название:
Seven Concurrency Models in Seven Weeks. When Threads Unravel
Год издания:
2019 г.
Может быть отгружен товар указанного или более позднего года
Редактор:
Переводчик:

Описание

Характеристики

С появлением микропроцессоров, обладающих большим числом ядер, понимание конкуренции и параллелизма при разработке программного обеспечения стало еще более важным, чем прежде. В книге вы познакомитесь с преимуществами функционального программирования с точки зрения конкуренции, узнаете, как применять акторы для разработки распределенного программного обеспечения, и исследуете приемы параллельной обработки огромных объемов информации на нескольких процессорах. Эта книга поможет вам приобрести новые навыки в разработке программ, благодаря чему вы будете готовы решать сложные задачи в ближайшие несколько лет.
количество томов
1
количество страниц
360 стр.
переплет
Мягкая обложка
размеры
204x142x17 мм
страна изготовления
Россия
цвет
Белый
тип бумаги
офсетная (60-220 г/м2)
формат
60x88/16 (140x205 мм)
ISBN
978-5-97060-244-7, 978-5-97060-720-6
тираж
200 экз.
стандарт
возрастная категория
18+ (нет данных)
вес
код в Майшоп
1927006
язык
русский

Содержание

Положительные отзывы к книге
"Семь моделей конкуренции за семь недель"
Предисловие
Благодарности
Вступление
О книге
Чем не является эта книга
Примеры кода
Примечание для пользователей IDE
Примечание для пользователей Windows
Ресурсы в Сети
Глава 1. Введение
Конкуренция или параллелизм?
Похожие, но разные
За рамками последовательного программирования
Параллельная архитектура
Параллелизм на уровне битов
Параллелизм на уровне инструкций
Параллелизм данных
Параллелизм на уровне задач
Конкуренция: за рамками множества ядер
Конкурентные программы для конкурентного мира
Распределенные программы для распределенного
мира
Надежные программы для непредсказуемого мира
Простые программы в сложном мире
Семь моделей
Глава 2. Потоки выполнения и блокировки
Самое простое из того, что может работать
День 1: взаимоисключение и модели памяти
Создание потока
Наша первая блокировка
Загадочная память
Видимость памяти
Несколько блокировок
Опасности сторонних методов
В завершение первого дня
День 2: помимо встроенных блокировок
Прерываемое блокирование
Тайм-ауты
Блокирование методом перебора
Условные переменные
Атомарные переменные
В завершение второго дня
День 3: на плечах гигантов
Еще раз о создании потоков
Копирование при записи
Законченная программа
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 3. Функциональное программирование
Если какие-то действия вредят вам, перестаньте
выполнять их
День 1: программирование без изменяемого
состояния
Опасности изменяемого состояния
Краткий экскурс в язык Clojure
Первая функциональная программа
Параллелизм без усилий
Функциональный подсчет слов
Лень - это благо
В завершение первого дня
День 2: функциональный параллелизм
По одной странице за раз
Разделение данных на пакеты для увеличения
производительности
Редуценты (reducers)
Внутреннее устройство редуцентов
Разделяй и властвуй
Поддержка функции fold
Подсчет слов с помощью fold
В завершение второго дня
День 3: функциональная конкуренция
Та же структура, разный порядок вычислений
Ссылочная прозрачность
Потоки данных
Механизм future
Механизм promise
Функциональная веб-служба
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 4. Путь Clojure - разделение идентичности
и состояния
Лучшее из двух миров
День 1: атомы и сохранные структуры данных
Атомы
Многопоточная веб-служба с изменяемым
состоянием
Сохраниые структуры данных
Идентичность или состояние
Повторения
Вал идатор ы
Функции-наблюдатели
Гибридная веб-служба
В завершение первого дня
День 2: агенты и программная транзакционная
память
Агенты
Журнал в памяти
Программная транзакционная память
Изменяемое разделяемое состояние
В завершение второго дня
День 3: погружение в глубину
Решение задачи о философах на основе STM
Решение задачи о философах без применения STM
Атомы или STM?
Собственная реализация конкуренции
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 5. Акторы
Не объекты, а скорее ориентированные на
объекты
День 1: сообщения и почтовые ящики
Наш первый актор
Почтовые ящики и очереди
Прием сообщений
Связывание процессов
Акторы с сохранением состояния
Сокрытие сообщений за фасадом API
Двунаправленное взаимодействие
Именование процессов
Отступление - функции первого порядка
Параллельная версия тар()
В завершение первого дня
День 2: обработка ошибок и отказоустойчивость
Актор кэширования
Определение момента отказа
Слежение за работой процессов
Тайм-ауты
Ядро ошибки
И пусть падает!
В завершение второго дня
День 3: распределенные приложения
ОТР
Узлы
Распределенный счетчик слов
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 6. Взаимодействие последовательных
процессов
Взаимодействия - это все
День 1:каналы и блоки до
Каналы
Блоки до
Операции с каналами
В завершение первого дня
День 2: множество каналов и ввод/вывод
Обслуживание множества каналов
Асинхронный опрос
Асинхронный ввод/вывод
В завершение второго дня
День 3: модель CSP на стороне клиента
Конкуренция - это образ жизни
Привет, ClojureScript
Обработка событий
Усмирение функций обратного вызова
Отправляемся в путь, чтобы увидеть Мастера
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 7. Параллелизм данных
В недрах вашего ноутбука спрятан
суперкомпьютер
День 1: программирование GPGPU
Обработка данных и параллелизм данных
Наша первая программа для OpenCL
Профилирование
Множество возвращаемых значений
Обработка ошибок
В завершение первого дня
День 2: многомерность и рабочие группы
Многомерные массивы рабочих элементов
Получение информации об устройстве
Модель платформы
Модель памяти
Параллельная свертка
Свертка с одной рабочей группой
В завершение второго дня
День 3: OpenCL и OpenGL-храните данные в GPU
Водная рябь
LWJGL
Отображение сетки в OpenGL
Доступ к буферу OpenGL из ядра OpenCL
Имитация ряби
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 8. Лямбда-архитектура
Параллелизм позволяет обрабатывать гигантские
объемы
данных
День 1:MapReduce
Практические аспекты
Основы Hadoop
Подсчет слов с помощью Hadoop
Опробование на Amazon EMR
Обработка ХМ L
В завершение первого дня
День 2: пакетный уровень
Проблемы с традиционными системами данных
Вечные истины
Лучшие данные - исходные данные
Авторы правок в Википедии
Завершение картины
В завершение второго дня
День 3:уровень ускорения
Архитектура уровня ускорения
Подсчет правок с помощью Storm
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Альтернативы
Напоследок
Глава 9. В заключение
Куда мы идем?
Будущее за неизменяемостью
Будущее за распределенными вычислениями
Темы, оставшиеся за бортом
Fork/Join и захват задачи
Потоки данных
Реактивное программирование
Функциональное реактивное программирование
Grid-вычисления
Пространства кортежей
Выбор за вами
Библиография
Предметный указатель

Отзывы

Вопросы

Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!

Дарим бонусы за отзывы!

За какие отзывы можно получить бонусы?
  • За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
  • Публикуйте фото или видео к отзыву
  • Пишите отзывы на товары с меткой "Бонусы за отзыв"
Правила начисления бонусов
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Семь моделей конкуренции и параллелизма за семь недель» (авторы: Батчер Пол), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!
Ваш населённый пункт:
г. Москва
Выбор населённого пункта