Параллельное программирование с OmniThreadLibrary
Параллельное программирование с OmniThreadLibrary
О книге
Эта книга о параллельном программировании с OmniThreadLibrary (otl.17slon.com), могопоточной библиотеке для Delphi. Вы можете получить дополнительную информацию о книге и текущем состоянии каждой главы в thedelphigeek.com.
Содержание
- Благодарности
- Перевод
- Введение
- Соглашения форматирования
- В разработке
- Объявление
- Примечания к выпуску
- 1 Введение в многопоточность
- 1.1 Бесплатной еды больше не будет (The Free Lunch is Over)
- 2 Введение в OmniThreadLibrary
- 2.1 Требования
- 2.2 Лицензия
- 2.3 Установка
- 2.3.1 Установка пакета времени разработки
- 2.4 Зачем использовать OmniThreadLibrary?
- 2.5 Задачи или потоки
- 2.6 Блокирование или соообщения
- 2.7 TOmniValue
- 2.8 Свободные интерфейсы
- 3 Высокоуровневая многопоточность
- 3.1 Введение
- 3.1.1 Жизненный цикл Абстракции
- 3.1.2 Анонимные методы, Методы и Процедуры
- 3.1.3 Пулинг
- 3.2 Блокирующая коллекция
- 3.2.1 IOmniBlockingCollection
- 3.2.2 Регулирование
- 3.3 Конфигурация задач
- 3.4 Асинхронность (Async)
- 3.4.1 Обработка исключений
- 3.5 Async/Await
- 3.6 Будущее (Future)
- 3.6.1 Интерфейс IOmniFuture
- 3.6.2 Определение завершения
- 3.6.3 Отмена
- 3.6.4 Обработка исключений
- 3.6.5 Примеры
- 3.7 Присоединение (Join)
- 3.7.1 Интерфейс IOmniParallelJoin
- 3.7.2 Интерфейс IOmniJoinState
- 3.7.3 Отмена
- 3.7.4 Обработка исключений
- 3.8 Параллельная задача (Parallel Task)
- 3.8.1 Интерфейс IOmniParallelTask
- 3.8.2 Пример
- 3.8.3 Обработка исключений
- 3.8.4 Примеры
- 3.9 Фоновый рабочий (Background Worker)
- 3.9.1 Основы
- 3.9.2 Интерфейс IOmniBackgroundWorker
- 3.9.3 Инициализация задачи
- 3.9.4 Конфигурация рабочих элементов
- 3.9.5 Интерфейс рабочего элемента
- 3.9.6 Примеры
- 3.10 Конвейер (Pipeline)
- 3.10.1 Понятия
- 3.10.2 Основы
- 3.10.3 IOmniPipeline
- 3.10.4 Генераторы, Преобразователи и Агрегаторы
- 3.10.5 Регулирование
- 3.10.6 Параллельные этапы
- 3.10.7 Исключения
- 3.10.8 Примеры
- 3.11 Для каждого (For Each)
- 3.11.1 Сотрудничество
- 3.11.2 Перебираем …
- 3.11.2.1 … Числовые диапазоны
- 3.11.2.2 … Перечисляемые коллекции
- 3.11.2.3 … Потокобезопасные перечисляемые коллекции
- 3.11.2.4 … Блокирующие коллекции
- 3.11.2.5 … Всё
- 3.11.3 Обеспечение внешнего ввода
- 3.11.4 IOmniParallelLoop
- 3.11.5 Сохранение выходного порядка
- 3.11.6 Агрегация
- 3.11.7 Отмена
- 3.11.8 Инициализация и завершение задачи
- 3.11.9 Обработка исключений
- 3.11.10 Внутреннее устройство
- 3.11.10.1 Поставщик источника
- 3.11.10.2 Менеджер данных
- 3.11.10.3 Локальная очередь
- 3.11.10.4 Упорядочивание вывода
- 3.11.11 Примеры
- 3.12 Разделение/Присоединение (Fork/Join)
- 3.12.1 IOmniForkJoin
- 3.12.2 IOmniCompute
- 3.12.3 IOmniCompute<T>
- 3.12.4 Исключения
- 3.12.5 Примеры
- 4 Низкоуровневая многопоточность
- 4.1 Пул потоков
- 4.2 Неблокируемые коллекции
- 4.2.1 Ограниченный стек
- 4.2.2 Ограниченная очередь
- 4.2.3 Динамическая очередь
- 4.3 Простые задачи
- 4.3.1 Связь
- 4.3.2 Вызов
- 4.3.3 Исключения
- 4.3.4 MonitorWith
- 4.3.5 Отменяющий токен / CancelWith
- 4.3.6 Блокировка / WithLock
- 4.3.7 Счётчик / WithCounter
- 4.3.8 Группа задач
- 5 Синхронизация
- 5.1 Критические секции
- 5.1.1 IOmniCriticalSection
- 5.1.2 TOmniCS
- 5.1.3 Locked
- 5.1.3.1 Почему бы не использовать TMonitor?
- 5.2 TOmniMREW
- 5.3 Отменяющий токен
- 5.4 Ожидающее значение
- 5.5 Обратный семафор
- 5.6 Инициализация
- 5.6.1 Пессимистичная инициализация
- 5.6.2 Оптимистичная инициализация
- 6 Разное
- 6.1 TOmniValue
- 6.2 TOmniCounter
- 6.3 TGp4AlignedInt è TGp8AlignedInt64
- 7 Как сделать… (How to…)
- 7.1 Фоновое сканирование файлов
- 7.2 Async/Await
- 7.3 Загрузка из интернета и хранилище базы данных
- 7.4 Параллельный For с синхронизированным выводом
- 7.5 Фоновый рабочий и разделение списка
- 7.6 Параллельное производство данных
- 7.7 Создание пула соединений
- 7.7.1 От теории к практике
- 7.7.2 Запуск демо
- 7.8 Быстрая сортировка и параллельный максимум
- 7.8.1 Быстрая сортировка
- 7.8.1.1 Параллельный максимум
- 7.9 Параллельный поиск в дереве
- 7.10 Несколько рабочих с несколькими структурами
- 7.10.1 Рабочий
- 7.10.2 Фрейм
- 7.10.3 Форма
- 7.11 OmniThreadLibrary и базы данных
- 7.11.1 Модель базы данных
- 7.11.2 Фрейм и рабочий
- 7.11.2.1 Подключение к базе данных
- 7.11.2.2 Получение данных
- 7.11.3 Главная программа
- 7.12 OmniThreadLibrary и COM/OLE
- 8 Словарь
- 9 Демонстрационные приложения
60-дневная гарантия 100% удовлетворения от Leanpub
В течение 60 дней после покупки вы можете получить 100% возврат средств за любую покупку на Leanpub всего в два клика.
Технически это рискованно для нас, поскольку файлы книги или курса останутся у вас в любом случае. Но мы настолько уверены в наших продуктах и услугах, а также в наших авторах и читателях, что с радостью предлагаем полную гарантию возврата денег за всё, что мы продаем.
Узнать, насколько что-то хорошо, можно только попробовав, а благодаря нашей 100% гарантии возврата денег это можно сделать без всякого риска!
Так что нет причин не нажать кнопку "Добавить в корзину", не так ли?
Ознакомьтесь с полными условиями...
Получайте $8 с покупки за $10 и $16 с покупки за $20
Мы выплачиваем 80% роялти за покупки от $7.99 и выше, и 80% роялти минус фиксированную комиссию 50 центов за покупки в диапазоне от $0.99 до $7.98. Вы зарабатываете $8 с продажи за $10 и $16 с продажи за $20. Таким образом, если мы продадим 5000 невозвращенных копий вашей книги по $20, вы заработаете $80,000.
(Да, некоторые авторы уже заработали намного больше этого на Leanpub.)
Фактически, авторы заработалиболее $14 миллионов, создавая, публикуя и продавая на Leanpub.
Узнайте больше о писательстве на Leanpub
Бесплатные обновления. Без DRM.
Если вы покупаете книгу на Leanpub, вы получаете бесплатные обновления, пока автор обновляет книгу! Многие авторы используют Leanpub для публикации своих книг в процессе написания. Все читатели получают бесплатные обновления, независимо от того, когда они купили книгу и сколько заплатили (включая бесплатные книги).
Большинство книг Leanpub доступны в форматах PDF (для компьютеров) и EPUB (для телефонов, планшетов и Kindle). Форматы, в которых доступна книга, показаны в правом верхнем углу этой страницы.
Наконец, книги Leanpub не имеют никакой бессмысленной DRM-защиты, поэтому вы можете легко читать их на любом поддерживаемом устройстве.
Узнайте больше о форматах электронных книг Leanpub и где их читать