8 (905) 200-03-37 Владивосток
с 09:00 до 19:00
CHN - 1.14 руб. Сайт - 17.98 руб.

В «Детское понимание виртуальной машины Java JVM Характеристики высокого уровня и лучшая практика Zhou Zhiming 3 -е издание+Java Complourent Art Java Book Java Virtual Machine Programming Pronge Princom

Цена: 3 381руб.    (¥188)
Артикул: 616677126193

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.

Этот товар на Таобао Описание товара
Продавец:馨园青图书专营店
Адрес:Хэнань
Рейтинг:
Всего отзывов:215269
Положительных:215269
Добавить в корзину
Другие товары этого продавца
¥41.5747руб.
¥50.5908руб.
¥29522руб.
¥14.8267руб.

 


  Основная информация, обратитесь к следующему введению
Название книги:В -Детское понимание виртуальной машины Java: старшие характеристики JVM и лучшая практика (3 -е издание) Искусство Java. Параллельные программы
Автор:Zhou Zhiming Fang Tengfei Wei Peng Cheng Xiaoming
Цены: 188.00
Номер ISBN: 9787111641247 9787111508243
Издательство:Machinery Industry Press

   Редактировать рекомендацию

(1) Эта книга стоит прочитать 3 раза для всех техников Java. Стоит прочитать 3 раза в Java Technics. Стоит прочитать 3 раза!

(2) Полное обновление в соответствии с версиями EA JDK12 и JDK 13, новый контент составляет почти 50%, а расплывчатые дефекты и содержание ошибок во втором издании исправлены.

(3) Памятник в области компьютерных книг был напечатан 36 раз, в общей сложности 36 раз, с объемом продаж более 300 000 экземпляров.

(4) Из технологической системы Java, автоматического управления памятью, подсистемы выполнения виртуальной машины, компиляции программы и оптимизации кода, а также эффективного комплексного анализа JVM.

(5) Вся книга руководствуется фактическим боем, а решение и навыки решения различных технических задач Java анализируются и продемонстрированы с помощью большого количества анализа случаев с фактической производственной средой.

(6) 10 экспертов из Ali, Tencent, Microsoft, Baidu, Didi, Yibao Pay, Tongdun Technology, Daguan Data, Tanni International и Mushroom Street высоко оценены и настоятельно рекомендуются.



  краткое введение

Это книга, которая тщательно анализирует JVM из двух измерений рабочих принципов и инженерной практики. Это классика, признанная компьютерной областью. Традиционная версия также очень популярна на Тайване.

С момента своего листинга в 2011 году первые две версии были напечатаны 36 раз и проданы более 300 000 копий. Почти 90 000 комментариев из двух основных онлайн -книжных магазинов, которые почти нулевые дифференциальные. Это непреодолимый памятник в области оригинального компьютера. книги

3 -е издание было пересмотрено на основе 2 -го издания. Содержание более богаче и фактическое: согласно новой версии JDK, контент был полностью пересмотрен и обновлен, и более 100 000 слов добавляются вокруг новых технологий и и Производственная практика. Он содержит почти 50%нового контента и исправил смутные, дефекты и содержание ошибок во втором издании.

В книге есть 13 глав, разделенные на пять частей:

*Частичный (глава 1) подход к Java

Система вводит техническую систему Java, историю разработки, семейство виртуальных машин и ручную компиляцию JDK. Чтобы понять, что эта часть может дать хорошее руководство для обучения JVM.

Часть 2 (Глава 2 ~ 5) Автоматическое управление памятью

Подробное объяснение области памяти Java и переполнения памяти, сборщика мусора и стратегии распределения памяти, мониторинга производительности виртуальных машин и устранения сбоев, связанных с автоматическим управлением памяти, и более 10 классических случаев оптимизации производительности и методов оптимизации;

Часть III (Глава 6-9) Исполнительная система виртуальной машины

В -DEPTH Анализ подсистем выполнения виртуальной машины, включая структуры файлов, механизмы загрузки виртуальной машины, двигатели выполнения виртуальных машин, и практические случаи загрузки нескольких классов и подсистемы выполнения;

Часть 4 (Глава 10 ~ 11) Компиляция программы и оптимизация кода

Подробное объяснение компиляции и оптимизации программы передней и задней стороны, включая меры оптимизации легкого использования передней части, такие как анализ в рамках содержания общего, активного бокса и кондиционирования; Метод обнаружения горячей точки машины, мгновенный компилятор горячей точки, ранний компилятор и различные методы оптимизации периода общего компиляции;

Часть 5 (Глава 12 ~ 13) Эффективное параллелизм

В основном это объясняет принцип высокого параллелистика в Java, включая модели памяти Java, потоки и корпорации, а также безопасность потоков и оптимизация блокировки.

Книга руководствуется фактическим боем, а решение и навыки решения различных технических проблем Java анализируются и продемонстрированы с помощью большого количества анализа случаев с фактической производственной средой.



  Оглавление

Оглавление  Contents

Предисловие

Спасибо

Первая часть приближается к Java

Глава 1 Подход к Java  2

1.1 Обзор  2

1.2 Technology System Java  3

1.3 История развития Java  4

1.4 Java Virtual Machine Family  12

1.4.1 Виртуальная машина предок: Sun Classic/Точная виртуальная машина  12

1.4.2 Лорд боевых искусств: горячая точка VM  13

1.4.3 xiaojiabiyu: мобильная/встроенная виртуальная машина  14

1.4.4 World Second: Bea Jrockit/IBM J9 VM  15

1.4.5 Soft and Sky: Bea Liquid VM/Azul VM  16

1.4.6 Challenger: Apache Harmony/Google Android Dalvik VM  17

1.4.7 не удается добиться успеха, но это не неудача: Microsoft JVM и другие  18

1,4,8 сотни школ.  19

1.5 Ищу будущее технологии Java  21

1.5.1 Нет тенденции языка  21

1.5.2 Новое поколение компиляторов реального времени  23

1.5.3. Тур на родной  24

1.5.4 Гибкий толстый человек  26

1.5.5 Язык и грамматика продолжают увеличиваться  27

1.6 Фактический бой: Скомпилируйте JDK самостоятельно  29

1.6.1 Получите исходный код  29

1.6.2 Системные требования  31

1.6.3 Стройте среду компиляции  33

1.6.4 Компиля  34

1.6.5 Отладка исходного кода в инструменте IDE  36

1.7 Сводка этой главы  39

Часть II Автоматическое управление памятью

Глава 2 Область памяти Java и переполнение памяти аномально  42

2.1 Обзор  42

2.2 Область данных во время выполнения  42

2.2.1 Программная счетчик  43

2.2.2 Java Virtual Machine Stack  43

2.2.3. Локальный стек методов  44

2.2.4 Java Pule  44

2.2.5 Зона метода  46

2.2.6. Постоянный бассейн  47

2.2.7 Прямая память  47

2.3 Hotspot Virtual Machine Object Expelicing Secret  48

2.3.1 Создание объектов  48

2.3.2 Планировка памяти объекта  51

2.3.3 Доступ к позиционированию объектов  52

2.4 Фактический бой: аномалии OutofmemoryError  53

2.4.1 переполнение кучи Java  54

2.4.2.  56

2.4.3 Зона метода и постоянный переполнение бассейна  61

2.4.4 Прямая переполнение памяти этой машины  65

2.5 Сводка этой главы  66

Глава 3 Стратегия распределения мусора и распределения памяти  67

3.1 Обзор  67

3.2 Объекты мертвы?  68

3.2.1 Алгоритм подсчета справочного материала  68

3.2.2 Алгоритм анализа активности  70

3.2.3. Поговорите о цитировании снова  71

3.2.4 Выживание или смерть?  72

3.2.5 Область метода переработки  74

3.3 Алгоритм сбора мусора  75

3.3.1 Теория сбора сбора  75

3.3.2 Алгоритм тега  77

3.3.3 Алгоритм TAG-COPION  78

3.3.4 Алгоритм сортирования тегов  79

3.4 Детали алгоритма горячей точки  81

3.4.1 Перечисление узлов  81

3.4.2 Точка безопасности  82

3.4.3 Зона безопасности  83

3.4.4 Таблица сбора памяти и карт  84

3.4.5 Напишите барьер  85

3.4.6 Доступный анализ параллелизма  87

3.5 Классический сборщик мусора  89

3.5.1 Серийный коллекционер  90

3.5.2 Коллекционер Parnew  92

3.5.3.  93

3.5.4 Серийный старый коллекционер  94

3.5.5 Параллельный старый коллекционер  95

3.5.6 CMS Collector  96

3.5.7. Первый коллектор мусора  98

3.6 Сборщик мусора с низкой задержкой  104

3.6.1 Shenandoah Collector  105

3.6.2 ZGC Collector  112

3.7 Выберите правильный сборщик мусора  121

3.7.1 Epsilon Collector  121

3.7.2 Баланс коллекционера  121

3.7.3  122

3.7.4 Сводка параметров коллекционеров мусора  127

3.8 Фактический бой: стратегия распределения памяти и утилизации  129

3.8.1 Объекты предпочтительнее в Эдема  130

3.8.2 Объекты непосредственно входят в старость  131

3.8.3 Цель долгосрочной выживания войдет в старость  132

3.8.4 Динамическое суждение возраста объекта  134

3.8.5 Гарантия распределения пространства  135

3.9 Резюме этой главы  137

Глава 4 Мониторинг производительности виртуальной машины, инструменты обработки разломов  138

4.1 Обзор  138

4.2 Основной инструмент лечения неисправностей  138

4.2.1 JPS: инструмент состояния процесса виртуальной машины  141

4.2.2 JSTAT: инструмент наблюдения за статистической информацией виртуальной машины  142

4.2.3 Jinfo: Информационный инструмент для конфигурации Java  143

4.2.4 Jmap: инструмент изображения памяти Java  144

4.2.5 JHAT: инструмент анализа моментальных стволов для хранения сбора виртуальной машины  145

4.2.6 JStack: инструмент отслеживания стека Java  146

4.2.7 Основное резюме инструмента  148

4.3 Инструмент обработки разломов визуализации  151

4.3.1 JHSDB: Инструменты отладки на основе прокси -сервера обслуживания  152

4.3.2 JConsole: консоль наблюдения и управления Java  157

4.3.3 VisualVM: инструменты с несколькими последовательными  164

4.3.4 Java Mission Control: устойчивый инструмент онлайн -мониторинга  171

4.4 Hotspot Virtual Machine Plug -In и инструменты  175

4.5 Сводка этой главы  180

Глава 5 Анализ настройки и борьба  181

5.1 Обзор  181

5.2 Анализ случая  181

5.2.1 Стратегия развертывания программы на крупном оборудовании памяти  182

5.2.2 Переполнение памяти, вызванное синхронизацией между кластерами  184

5.2.3 Эррозон, вызванный кучей памяти  185

5.2.4 Внешние команды приводят к медленной системе  187

5.2.5.  187

5.2.6 Неправильная структура данных приводит к слишком большому количеству занятий памяти  188

5.2.7 Длительная пауза, вызванная виртуальной памятью Windows  189

5.2.8 Блюда давно с точки зрения безопасности  190

5.3 Фактический бой: настройка скоростной настройки Eclipse Run  192

5.3.1. Перед настройкой.  193

5.3.2 Обновление изменений производительности и проблем совместимости версии JDK  196

5.3.3 Оптимизация времени компиляции и времени загрузки класса  200

5.3.4 Отрегулируйте настройки памяти для управления частотой сбора мусора  203

5.3.5 Выберите коллекционер, чтобы уменьшить задержку  206

5.4 Сводка этой главы  209

Третья часть виртуальной машины выполняет подсистему

Глава 6 Структура файла класса  212

6.1 Обзор  212

6.2 Несвязанный краеугольный камень  212

6.3 Структура файла класса  214

6.3.1 Номер демонов и версия файла класса  215

6.3.2 Конституционный пул  218

6.3.3 Логотип доступа  224

6.3.4 Индекс класса, индекс индекса родителей и индекс интерфейса  225

6.3.5 Коллекция полевых таблиц  226

6.3.6 Сбор методов таблицы  229

6.3.7 Коллекция таблиц атрибутов  230

6.4 Профиль инструкции ByteCode  251

6.4.1 Bytecode и тип данных  251

6.4.2 Инструкции по загрузке и хранению  253

6.4.3 Компьютерные инструкции  254

6.4.4 Инструкция по конверсии типа  255

6.4.5 Инструкции по созданию и доступу объектов  256

6.4.6  256

6.4.7 Инструкции по передаче управления  257

6.4.8 Инструкции по вызову и возврату метода  257

6.4.9 Инструкции по аномальной обработке  258

6.4.10 Синхронные инструкции  258

6.5 Общественный дизайн, частная реализация  259

6.6 Разработка структуры файла класса  260

6.7 Сводка этой главы  261

Глава 7 Механизм загрузки виртуальной машины  262

7.1 Обзор  262

7.2 Время загрузки класса  263

7.3 Процесс загрузки класса  267

7.3.1 нагрузка  267

7.3.2 Проверка  268

7.3.3 Подготовка  271

7.3.4 Анализ  272

7.3.5 Инициализация  277

7.4 Классовый погрузчик  279

7.4.1 класс и загрузчик класса  280

7.4.2 Модель двойного назначения  281

7.4.3 Уничтожьте двухцветную модель назначения  285

7.5 модульная система Java  287

7.5.1 Совместимость модулей  288

7.5.2 Загрузчик класса под модулизованным  290

7.6 Сводка этой главы  292

Глава 8 Двигатель выполнения виртуальной машины.  293

8.1 Обзор  293

8.2 Запустите структуру кадра стека  294

8.2.1 Таблица локальной переменной  294

8.2.2.  299

8.2.3 Динамическое соединение  300

8.2.4. Адрес возврата метода  300

8.2.5 Дополнительная информация  301

8.3 Метод вызов  301

8.3.1 Анализ  301

8.3.2 баллов  303

8.4 Поддержка языка динамического типа  315

8.4.1 Язык динамического типа  316

8.4.2 Ява и динамические типы  317

8.4.3 Java.lang.invoke Bag  318

8.4.4 Инструкции вызванных  321

8.4.5 Фактическая борьба: правила распределения методов управления  324

8.5 на основе интерпретации байт -кодов двигателя интерпретации стека  326

8.5.1 Объяснение исполнение  327

8.5.2 Набор инструкций на основе стека и набор инструкций на основе регистрации  328

8.5.3 Процесс выполнения на основе интерпретатора на основе стека на основе стека  329

8.6 Резюме этой главы  334

Глава 9 Случаи погрузки и исполнительных систем и случаев и реальной войны  335

9.1 Обзор 335

9.2 Анализ случая  335

9.2.1 Tomcat: Православная архитектура загрузчика класса  335

9.2.2 OSGI: Гибкая архитектура загрузчика класса  338

9.2.3 Технология генерации байт -кодов и динамическая реализация прокси -сервера  341

9.2.4 Инструмент за возврат:  345

9.3 Фактический бой: самостоятельно реализуйте функцию удаленного выполнения  348

9.3.1 Цель  348

9.3.2 мышление  349

9.3.3 Реализация  350

9.3.4 Проверка  355

9.4 Резюме этой главы  356

Часть 4 программы компиляции и оптимизация кода

Глава 10 Pre -Fend Компиляция и оптимизация  358

10.1 Обзор  358

10.2 Javac Compiler  359

10.2.1 Исходный код и отладка Javac  359

10.2.2 Анализ и таблица символов заполнения  362

10.2.3 Примечание процессора  363

10.2.4 Семантический анализ и генерация байт -кодов  364

10.3 Синтаксис Java Sugar Taste  367

10.3.1 Общий тип  367

10.3.2 Автоматическое бокс, разборка и цикл обхода  375

10.3.3 Компиляция условий  377

10.4 Фактический бой: вставленный процессор аннотации  378

10.4.1 Фактическая боевая цель  379

10.4.2 Реализация кода  379

10.4.3 запустить и проверить  385

10.4.4 Другие случаи применения  386

10.5 Сводка этой главы  386

Глава 11 Бэк -Компиляция и оптимизация  388

11.1 Обзор  388

11.2 Мгновенный компилятор  389

11.2.1 Интерпретатор и компилятор  389

11.2.2 Компиляция объектов и условия запуска  392

11.2.3 Процесс компиляции  397

11.2.4 Фактическая борьба: просмотреть и проанализировать результаты мгновенного компиляции  398

11.3 Ранний компилятор  404

11.3.1 Скомпилированные преимущества и недостатки, составленные заранее  405

11.3.2 Фактическая борьба: ранняя компиляция JAOTC  408

11.4 Технология оптимизации компилятора  411

11.4.1 Оптимизированный обзор технологий  411

11.4.2 Метод внутренний куплет  415

11.4.3 Анализ побега  417

11.4.4  420

11.4.5 Устранение обследования границ массива  421

11.5 Фактический бой: в -depth понимание компилятора Graal  423

11.5.1 Исторический фон  423

11.5.2. Построить среду компиляции и ввода в эксплуатацию  424

11.5.3 Интерфейс компилятора JVMCI  426

11.5.4 Код в среднем представительстве  429

11.5.5 Оптимизация кода и генерация  432

11.6 Сводка этой главы  436

Часть 5 Эффективная одновременная

Глава 12 Модель и поток памяти Java  438

12.1 Обзор  438

12.2 Эффективность и согласованность аппаратного обеспечения  439

12.3 модель памяти Java  440

12.3.1 Основная память и рабочая память  441

12.3.2 Интерактивная операция памяти  442

12.3.3 Специальные правила для переменных летучих типов  444

12.3.4 Специальные правила для длинных и двойных переменных  450

12.3.5 атомность, видимость и порядок  450

12.3.6 Принципы заранее  452

12.4 Java и потоки  455

12.4.1 Реализация потоков  455

12.4.2.  458

12.4.3 Преобразование статуса  460

12.5 Java и корпоративная  461

12.5.1 Ограничения резьбы ядра  461

12.5.2 Восстановление Coroutine  462

12.5.3 Java Solution  464

12.6 Резюме этой главы  465

Глава 13 Проблема безопасности и оптимизация блокировки  466

13.1 Обзор  466

13.2 Безопасность потока  466

13.2.1 Безопасность потока на языке Java  467

13.2.2 Метод реализации безопасности потока  471

13.3 Оптимизация блокировки  479

13.3.1 Self -Spin Lock и Adaptive Self -Rotation  479

13.3.2 Устранение блокировки  480

13.3.3 Заблокировать грубую  481

13.3.4 Легкий замок  481

13.3.5 BIAS Lock  483

13.4 Резюме этой главы  485

Приложение A Compiles OpenJDK 6 в системе Windows  486

Приложение B С нетерпением жду будущего технологии Java (Edition 2013)  493

Приложение C Таблица инструкции по коду виртуального машины  499

Приложение D Объект объекта Язык (OQL) Введение  506

Приложение E JDK Историческая версия трек  512

Предисловие

Глава 1 Задача программирования 1

1.1 Переключение 1 Контекст 1

1.1.1 Multi -Thread должен быть быстрым?

1.1.2 Проверьте число и длину контекстного переключателя 3 3

1.1.3 Как уменьшить контекстный переключатель 3

1.1.4 Уменьшите переключение контекста фактическое борьбу 4

1.2 Dead Lock 5

1.3 Задача лимита ресурса 6

1.4 Резюме этой главы 7

Глава 2 Принципы реализации подземной реализации Java -параллельного механизма 8

2.1 летучие применения 8

2.2 Синхронизированный принцип реализации и приложение 11

2.2.1 Java Object Head 12

2.2.2 Обновление и сравнение замков 13

2.3 Принципы атомной операции 16

2.4 Резюме этой главы 20

Глава 3 Модель памяти Java 21

3.1 Основа модели памяти Java 21

3.1.1 Два ключевых вопроса одновременного программирования модели 21

3.1.2 Абстрактная структура модели памяти Java 22

3.1.3 Сортировка из исходного кода до последовательности инструкций 23

3.1.4 Классификация модели параллельного программирования 24

3.1.5.

3.2 Сорт 27

3.2.1 Зависимость данных 28

3.2.2 AS-IF-сериал Семантика 28

3.2.3 Правила заказа программы 29

3.2.4 Влияние тяжелой сортировки на многочисленную 29

3.3 последовательность последовательности 31

3.3.1 Конкуренция данных и последовательность последовательности 31

3.3.2 Модель памяти 32 последовательности.

3.3.3 Эффект синхронной программы 34

3.3.4 Особенности выполнения не синхронизированных программ 35

3.4 Семантика памяти Volatile 38

3.4.1 летучие функции 38

3.4.2 levatile rhiteforing hapens-before отношения 39

3.4.3 Семантика летучей записи памяти 40

3.4.4. Служба летучей памяти 42

3.4.5 JSR-133 Зачем улучшить семантику памяти Volatile 46

3.5 Симптом памяти блокировки 47

3.5.1 Выпуск блокировки

3.5.2. Семантика выпуска и памяти замков 48

3.5.3 Реализация семантической семантической семантики 50

3.5.4 Реализация параллельного пакета 54

3.6 Семантика памяти в конечном домене 55

3.6.1 Правила ограничения окончательного домена 55

3.6.2 Правила ограничения окончательного домена 56

3.6.3 Прочитайте правила ограничения окончательного домена 57

3.6.4 Окончательный домен - это ссылочный тип 58

3.6.5 Почему окончательная ссылка не может быть в пределах конструктора“ переполнение” 59

3.6.6 Окончательная семантика в реализации процессора 61

3.6.7 JSR-133 Зачем улучшить семантику Final 62

3.7 happens-before 62

3.7.1 JMM Design 62

3.7.2 Определение Hapens-Before 64

3.7.3 Hapens-Befor

3.8 Двойная проверка блокировка и инициализация задержки 67

3.8.1 Двойная проверка блокировки 67

3.8.2 Корская причина задачи 69

3.8.3 Решение на основе летучих 71

3.8.4 Решение на основе инициализации класса 72

3.9 Обзор модели памяти Java 78

3.9.1 Модель памяти процессора 78

3.9.2 Отношения между различными моделями памяти 80

3.9.3 JMM Гарантия видимости памяти 80

3.9.4 JSR-133 Ремонт для старой модели памяти 81

3.10 Эта глава является резюме 82

Глава 4 Основы программирования Java 83

4.1 Введение потока 83

4.1.1 Что такое нить 83

4.1.2 Зачем использовать мульти -thread 84

4.1.3 Приоритет потока 85

4.1.4 Статус потока 87

4.1.5 Тейд демонов 90

4.2 Запуск и прекращение потока 91

4.2.1 Структурная резьба 91

4.2.2 Запуск нить 92

4.2.3 Понимание прерывания 92

4.2.4 Срок действия приостановки (), resume () и stop () 93

4.2.5.

4.3.

4.3.1 Ключевое слово 96.

4.3.2 Механизм ожидания/уведомление 98

4.3.3 Рай 101 Ожидание/уведомление 101

4.3.4 Входной/выходной поток трубы 102

4.3.5 Thread.join () Используйте 103

4.3.6. Использование Threadlocal 105

4.4 Экземпляр приложения потока 106

4.4.1 Режим времени ожидания 106

4.4.2. Пример пула подключений к базе данных 106

4.4.3 Технология пула потоков и ее пример 110

4.4.4 Простой веб -сервер на основе технологии пула потоков 114

4.5 Резюме этой главы 118

Глава 5 Замок в Java 119

5.1 Интерфейс блокировки 119

5.2 Синхронизатор очереди 121

5.2.1 Интерфейс и пример синхронизатора очереди 121

5.2.2 Анализ реализации синхронизатора очереди 124

5.3 re -cincomming Lock 136

5.4 Чтение и написание блокировки 140

5.4.1 Интерфейс и пример 141 чтения и записи замков

5.4.2 Анализ чтения и письма блокировки 142

5.5 Инструмент LockSupport 146

5.6 Интерфейс состояния 147

5.6.1 Интерфейс условий и пример 148

5.6.2 Анализ реализации условия 150

5.7 Резюме этой главы 154

Глава 6 Java и ANS и Framework 155

6.1

6.1.1 Зачем использовать concurrenthashmap 155

6.1.2 Структура Confurrenthashmap 156

6.1.3 Инициализация 157 Concurrenthashmap 157

6.1.4 Сегмент позиционирования 159

6.1.5 Работа concurrenthashmap 160

6.2 ConcurrentLinkedQueue 161

6.2.1.

6.2.2 Введите очередь 162

6.2.3 Questing 165

6.3 Блокировка очереди в Java 167

6.3.1 Что такое очередь блокировки 167

6.3.2 Очередь блокировки на Java 168

6.3.3

6.4 Форма/КОНФЕРАЦИЯ СМИ 175

6.4.1 Что такое Fork/Join Framework 175

6.4.2 Алгоритм кражи работы 176

6.4.3 Дизайн вилки/соединения фреймворка 177

6.4.4 Используйте вилку/соединение.

6.4.5 Аномальная обработка рамки вилки/соединения 179

6.4.6

6.5 Сводка этой главы 181

Глава 7 13 Атомные операции в Java 182

7.1 Атомное обновление базового типа класс 182

7.2 Массив атомного обновления 184

7.3 Атомное обновление цитирование типа 185

7.4 Атомное обновление полевого класса 187

7.5 Резюме этой главы 188

ГЛАВА 8 Класс параллельного инструмента в Java 189

8.1 В ожидании многочисленного Countdownlatch 189

8.2 Синхронный барьер Cyclicbarrier 191

8.2.1 Введение в Cyclicbarrier

8.2.2 Сцена применения Cyclickbarrier 193

Различия 8.2.3 Cyclicbarrier и Countdownlatch 195

8.3 Semaphore 196 контролировал количество одновременных потоков

8.4 Exchanger 198 Обменными данными между потоками

8.5 Эта глава - резюме 199

Глава 9 The Thread Pool 200 в Java 200

9.1 Принцип реализации пула Thread 200

9.2 Использование пула потоков 203

9.2.1 Создание The Thread Pool 203

9.2.2 Отправить миссию в пул ниток 205

9.2.3 ЗАКРЫТЬ БЛАБОРТА НИДЫ 205

9.2.4 Разумные потоки конфигурации. Пул 206

9.2.5 Мониторинг пула потоков 206

9.3 Резюме этой главы 207

Глава 10 Рамки исполнителя 208

10.1 Executor Framework Введение 208

10.1.1 Двухвелевая модель диспетчерского диспетчерского пласта 208

10.1.2 Структура структуры исполнителя и члена 208

10.2 Threadpoolexecutor Подробное объяснение 213

10.2.1 Подробное объяснение FixedThreadpool 213

10.2.2 SingleThreadExeCutor Подробное объяснение 214

10.2.3 CachedThreadpool Подробное объяснение 215

10.3 DearledThreadPoolexeCutor Подробное объяснение 217

10.3.1 Рабочий механизм 217.

10.3.2 Реализация 218.

10.4 FutureTask подробное объяснение 221

10.4.1 FutureTask Введение 222

10.4.2 FutureTask Использование 222

10.4.3 Реализация FutureTask 224

10.5 Эта глава является резюме 227

ГЛАВА 11 Ява ​​параллельная практика программирования 228

11.1 Производитель и потребительский модель 228

11.1.1.

11.1.2 Multi -producer и Multi -Consumer Scene 231

11.1.3. Модель потребительского бассейна и производства.

11.2 Онлайн -позиционирование 234

11.3 Тест на производительность 236

11.4 Асинхронное пул задач 238

11.5 Резюме этой главы 240


  об авторе

Чжоу Чжиминг (доктор)

Старшие технические эксперты Java, эксперты по технологиям машинного обучения и эксперты по развитию развития предприятия, а в настоящее время декан Института исследований программного обеспечения с высоким уровнем программного обеспечения.

Активные защитники и промоутеры технологий с открытым исходным кодом имеют глубокое понимание нескольких областей, связанных с информатикой, особенно искусственным интеллектом, технологией Java, а также гибкой разработкой и т. Д., И проводят глубокие исследования по технологии виртуальных машин.

Написал ряд книг, таких как «В -depth понимание виртуальных машин Java», «Глубокое понимание Осги», «Границы мудрости» и переведенные работы, такие как «спецификации виртуальной машины Java».Среди них «в глубине понимания виртуальной машины Java» было напечатано более 36 раз, с общими продажами более 300 000 экземпляров, что стало памятником, которое трудно превзойти область оригинальных компьютерных профессиональных книг.