Java Condurrent Programming Фактическая боевая базовая технология Java от входа до опытной в библиотеке использования, предоставленной библиотекой классов для создания высокоэффективных приложений фактические учебные пособия по проекту Java одновременно справочные учебники
Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
- Информация о товаре
- Фотографии
«Java Condurrent Programming Faction Bight» представляет Java Thread и Antyrunly.Начиная с базовой концепции одновременной безопасности и защиты потоков в книге, книга представляет, как использовать основную одновременную структуру, предоставленную библиотекой классов, чтобы избежать правил избежания опасности одновременных, строительных потоков и проверки потоков. Комбинация класса безопасности в более крупные категории безопасности потока, как использовать потоки для увеличения пропускной способности одновременных приложений, как определить задачи, которые можно выполнять параллельно, как улучшить отклик единой подсистемы, как обеспечить ожидаемую задачу одновременных программ, как выполнить ожидаемую задачу, как повысить производительность одновременного кода и эякуляции, и, наконец, представить некоторые продвинутые темы, такие как явные замки, атомные переменные, неблокирующие алгоритмы и как развивать Пользовательские инструменты синхронизации.
«Java Condurrent Programming Faction Bight» подходит для разработчиков программы Java.
"Java одновременное программирование фактического боя"
Слава этой книге
Переводчик
Предисловие
Глава 1 Введение 1
1.1 Пайморит 1
1.2 Преимущества резьбы 2
1.2.1 Дайте игру мощной способности мультипроцессора 2
1.2.2 Простота моделирования 3
1.2.3 Упрощенная обработка асинхронных событий 3
1.2.4 Ответ на более чувствительный пользовательский интерфейс 4
1.3 Риск, подвергнутый потоке 4
1.3.1 Проблема безопасности 5
1.3.2 Проблема активности 7
1.3.3 Проблемы с производительностью 7
1.4 РАЗДЕЛ ВЕЗДЕ 7
Первая часть основных знаний
Глава 2 Безопасность потока 11
2.1 Что такое безопасность потока 13
2.2 Atomic 14
2.2.1 Конкурентные условия 15
2.2.2 Пример: задержка конкурентных условий при инициализации 16
2.2.3 Композитная операция 17
2.3 Механизм блокировки 18
2.3.1 встроенный -в блокировке 20
2.3.2 Читать 21 21
2.4 Заблокировать для защиты статуса 22
2.5 активность и производительность 23
Глава 3 Обмен объектами 27
3.1 Видимо 27
3.1.1 Проватные данные 28
3.1.2 64 -бита.
3.1.3.
3.1.4 летучая переменная 30
3.2 Выпуск и окончание 32
3.3 резьба закрыта 35
3.3.1 Ad-Hoc резьба закрыта 35
3.3.2 Отходы закрыты 36
3.3.3 Threadlocal Class 37
3.4 Disearity 38
3.4.1 Окончательный домен 39
3.4.2 Пример: используйте летучий тип, чтобы опубликовать неизменную объект 40
3,5 Релиз безопасности 41
3.5.1 Неправильный выпуск: правильный объект уничтожен 42
3.5.2 Не измененные объекты и безопасность инициализации 42
3.5.3 Общий режим безопасного выпуска 43
3.5.4 Fernight Object 44
3.5.5 Переменная объект 44
3.5.6 Объект обмена безопасностью 44
Глава 4 Комбинация объекта 46
4.1 Дизайн потока безопасного класса 46
4.1.1 Сбор требований к синхронизации 47
4.1.2 Операция, которая зависит от статуса 48
4.1.3 Право собственности на штат 48
4.2 Позвонок для клиентов 49
4.2.1 Monitor Monitor Java 51
4.2.2 Пример: отслеживание транспортных средств 51
4.3 Entrusiing of Rade Security 53
4.3.1. Пример: 54 -бассовый трекер транспортного средства 54
4.3.2 Независимая переменная состояния 55
4.3.3 Когда поручение не удается 56
4.3.4 Отпустите основную переменную состояния 57
4.3.5 Пример: Трекер транспортных средств 58 издательское состояние 58
4.4 Добавить функцию в существующий класс безопасности потока 59
4.4.1 Механизм блокировки клиента 60
4.4.2 Комбинация 62
4.5 Синхронная стратегия Текст 62
Глава 5 Базовый конструктивный модуль 66
5.1 Синхронный контейнер 66
5.1.1 Проблема синхронного контейнера 66
5.1.2 Итератор и одновременная модификация Exception68
5.1.3 Скрытый итератор 69
5.2 и контейнер 70
5.2.1 ConcurrentHashMap71
5.2.2 Дополнительная операция атомной карты 72
5.2.3 CopyOnWriteArrayList72
5.3 Блокировка очереди и производителя-потребитель модель 73
5.3.1 Пример: поиск на рабочем столе 75
5.3.2 Серийная нить закрыта 76
5.3.3 Два -очередь и работают близко к 77
5.4 Метод блокировки и метод прерывания 77
5.5 Синхронный класс инструмента 78
5.5.1 Конституция 79
5.5.2 FutureTask80
5.5.3 Симптом 82
5.5.4 Забор 83
5.6 Строительство эффективных и масштабируемых результатов Cache 85
Вторая часть структурированного параллельного применения
Глава 6 Показание миссии 93
6.1 Задача выполнения в потоке 93
6.1.1 Серийная задача 94
6.1.2 подпишите, чтобы создать потоки для задачи 94
6.1.3 Неограниченная потока создания менее 95
6.2 Framework 96
6.2.1 Пример: веб -сервер 97 на основе исполнителя 97
6.2.2 Исполнительная стратегия 98
6.2.3.
6.2.4 Жизненный цикл исполнителя 99
6.2.5 Задержка задачи и задачи цикла 101
6.3 Узнайте доступную параллельность 102
6.3.1 Пример: серийная страница рендеринг 102
6.3.2 Задача переноса результатов Callable и Future103
6.3.3 Пример: используйте будущее для реализации рендеринга страницы 104
6.3.4 Ограничение в параллелизации гетерогенных задач 106
6.3.5 Завершение конвейса: исполнитель и Blockingqueue106
6.3.6.
6.3.7 Установите ограничение по времени задачи 108
6.3.8 Пример: портал бронирования путешествий 109
Глава 7 Отменить и закрыть 111
7.1 Миссия Отмена 111
7.1.1 прерывание 113
7.1.2 Стратегия прерывания 116
7.1.3 Прерывание ответа 117
7.1.4 Пример: время запуска 118
7.1.5 до будущего отменить 120
7.1.6 Обработка непрерывного блока 121
7.1.7 Используйте Newtaskfor для упаковки не -стандартной отмены 122
7.2 Стопковая резьба -на базе 124
7.2.1 Пример: служба журнала 124
7.2.2 Закрыть исполнители .127
7.2.3&Ldquo; ядовитая таблетка”
7.2.4 Пример: только после выполнения службы 129
7.2.5 Ограничения Shutdownow 130
7.3 Обработка неормального завершения потока 132
7.4 JVM Close 135
7.4.1 Close Hook 135
7.4.2 Тема Guardian 136
7.4.3 Термин 136
Глава 8 Использование пула потоков 138
8.1 Скрытая связь между задачей и стратегией исполнения 138
8.1.1 Голод и замок смерти 139
8.1.2 Миссия с долгосрочным временем 140
8.2 Установите размер бассейна ниток 140
8.3 Настройте ThreadPoolexeCutor141
8.3.1 Создание и разрушение нитей 142
8.3.2 Задача очереди управления 142
8.3.3 Стратегия насыщения 144
8.3.4 Фабрика поток 146
8.3.5 Настройка ThreadPoolexeCutor147 после вызова конструктора
8.4 Расширение ThreadPoolexeCutor148
8.5 Параторизация рекурсивного алгоритма 149
Глава 9 Приложение графического пользовательского интерфейса 156
9.1 Почему графический интерфейс - единственная нить 156
9.1.1 Обработка последовательных событий 157
9.1.2 Закрытый механизм резьбы в Swing 158
9.2 Короткий графический интерфейс. Задача 160
9.3 Долгосрочная задача графического интерфейса 161
9.3.1 Отмена 162
9.3.2 Логотип прогрессивной идентификации и завершения 163
9.3.3 SwingWorker165
9.4 Модель передачи данных 165
9.4.1 Модель данных потока 166
9.4.2 Модель дифференциальных данных 166
9.5 Другие формы одиночной подсистемы 167
Третья часть активности, производительности и теста
Глава 10 Избегайте действия деятельности 169
10.1 Dead Lock 169
10.1.1 Заказ о блокировке Dead Lock 170
10.1.2 Dynamic Bock Order Dead Lock 171
10.1.3 Мертвые замки, которые встречаются между совместными объектами 174
10.1.4 Открытый звонок 175
10.1.5 Ресурс Dead Lock 177
10.2 Избегание и диагностика мертвых замков 178
10.2.1.
10.2.2 Анализ мертвых замков через информацию о хранении потоков 178
10.3 Другая активная опасность 180
10.3.1 Голод 180
10.3.2 Плохой ответ 181
10.3.3 Live Lock 181
Глава 11 Производительность и извлечение 183
11.1 Размышления о производительности 183
11.1.1 Производительность и телескоп 184
11.1.2 Оценка различных факторов взвешивания.
11.2 Амдаль закон 186
11.2.1 Пример: последовательные части, спрятанные в различных рамках 188
11.2.2 Применение Амдала Закона 189
11.3 Серминация нитей 189
11.3.1 Switch 190 Контекст 190
11.3.2 Синхронизация памяти 190
11.3.3 Блок 192
11.4 Уменьшите конкуренцию Lock 192
11.4.1 Объем сужения замка (“”) 193
11.4.2 Уменьшите размер частиц 195
11.4.3 Сегмент блокировки 196
11.4.4 Избегайте горячих точек 197
11.4.5 Методы альтернативного эксклюзивного блокировки 198
11.4.6 Мониторинг использования ЦП 199
11.4.7 Скажи в пул объектов&LDQUO”200
11,5 Пример: по сравнению с производительности карты 200
11.6 Уменьшите накладные расходы на переключение контекста 201.
Глава 12 Тест прошлой программы 204
12.1 Правильный тест 205
12.1.1 Основной модульный тест 206
12.1.2 Тест операции блокировки 207
12.1.3 Тест безопасности 208
12.1.4 Тест управления ресурсами 212
12.1.5 Используйте возврат 213
12.1.6 Сгенерировать больше альтернативных операций 214
12.2 Тест производительности 215
12.2.1 Добавить функцию времени в Puttaketest 215
12.2.2 Сравнение множественных алгоритмов 217
12.2.3 Измерение ответа 218
12.3 Избегайте тестирования производительности 220
12.3.1 переработка мусора 220
12.3.2 Динамическая компиляция 220
12.3.3 Нереальная выборка кода 222
12.3.4 нереальная конкуренция 222
12.3.5 Устранение бесполезного кода 223
12.4 Другие методы испытаний 224
12.4.1 Обзор кода 224
12.4.2 Инструмент статического анализа 224
12.4.3 Технологии тестирования для аспектов 226
12.4.4 Инструмент анализа и мониторинга 226
Часть 4 продвинутая тема
Глава 13 Аверс Блокировка 227
13.1 Lock and Reentrantlock227
13.1.1 Круглый запрос и время замок 228
13.1.2.
13.1.3 замки не -блока структуры 231
13.2 Факторы производительности 231
13.3 Справедливость 232
13.4 Выберите между синхронизированными и повторными.
13.5 Замок с написанием чтения 235
Глава 14 Создание пользовательского синхронного инструмента 238
14.1 Управление зависимостью статуса 238
14.1.1 Пример: передать сбой необходимого условия абоненту 240
14.1.2 Пример: реализовать простое блокирование 241 через вращение и спящий
14.1.3 очередь состояния 243
14.2 Использование условий квест 244
14.2.1 Предикат состояния 244
14.2.2 Пробуждение преждевременно 245
14.2.3 Потерянный сигнал 246
14.2.4 Уведомление 247
14.2.5 Пример: клапанный класс 248
14.2.6 Проблемы безопасности подкласса 249
14.2.7 Условия упаковки квесты 250
14.2.8 Протокол импорта и протокол экспорта 250
14.3 Объективное условие объект 251
14.4 Анализ синхронизатора 253
14.5 AbstractQueuedSynchronizer254
14.6 java.util.concurrent class class aqs257
14.6.1 ReentrantLock257
14.6.2 Semaphore и Countdownlatch258
14.6.3 FutureTask259
14.6.4 ReentrantReadWriteLock259
Глава 15 Атомные переменные и не -блокирующий синхронный механизм 261
15.1 Недостаток блокировки 261
15.2 Аппаратная поддержка параллельной поддержки 262
15.2.1 Сравнение и обмен 263
15.2.2 Не -блокировка счетчика 264
15.2.3 Поддержка JVM для CAS 265
15.3 Атомная переменная класс 265
15.3.1 Атомные переменные - одна“”266
15.3.2 Сравнение производительности: блокировка и атомная переменная 267
15.4 не -блокирующий алгоритм 270
15.4.1 не -блокинг -стек 270
15.4.2 Не -блокирующий связанный список 272
15.4.3 Обновлено домен 274
15.4.4 ABA Вопрос 275
Глава 16 Модель памяти Java 277
16.1 Что такое модель памяти и почему она нуждается в ней 277
16.1.1 Модель памяти платформы 278
16.1.2 тяжелый сортировка 278
16.1.3 модель памяти Java Введение 280
16.1.4 Принятие синхронизации 281
16.2 Выпуск 283
16.2.1 Небезопасное выпуск 283
16.2.2 Релиз безопасности 284
16.2.3 Режим инициализации безопасности 284
16.2.4
16.3 Безопасность во время инициализации 287
Приложение параллельная маркировка 289
Ссылки 291