Книга "Java Concurrency на практике" является исчерпывающим руководством по использованию многопоточности в Java. Авторы, являющиеся создателями этой технологии, объясняют принципы работы с потоками и представляют различные паттерны проектирования. В настоящее время многоядерные процессоры стали обыденностью, и эффективное использование параллелизма является необходимым условием для разработки высокопроизводительных приложений. Книга рассматривает улучшенную виртуальную машину Java, поддержку высокопроизводительных классов и разнообразные строительные блоки для распараллеливания задач.
Одно из главных преимуществ книги заключается в том, что она не только описывает принципы и техники работы с многопоточностью, но также помогает решать типичные проблемы, связанные с разработкой, тестированием и отладкой многопоточных программ. Описанные в книге принципы и подходы позволяют создавать надежные, масштабируемые и легко поддерживаемые параллельные приложения.
"Java Concurrency на практике" не ограничивается простым перечислением API и механизмов параллелизма. Авторы фокусируются на правилах проектирования, паттернах и моделях, которые остаются актуальными вне зависимости от версии Java. Это делает книгу эффективным ресурсом для разработчиков на протяжении многих лет.
Кроме того, после покупки книги предоставляется возможность скачать ее в формате epub, что позволяет удобно читать материал на различных устройствах.
Понимание и использование концепции параллельности с течением времени из новых идей превратилось в неотъемлемую часть платформы Java, особенно с появлением многоядерных процессоров.
Индустрия стала все больше двигаться в сторону разработки масштабируемых, высокопроизводительных микросервисов. В этой книге, авторы которая, например, создал язык Apex, Брюс Эккель и Джошуа Фогель Д. Блох, показывают, что возрастающая важность путей времени разработки и тестирования многопоточного кода превращается в ворота для всевозможных проблем опускаться. Они предлагают читателю ясный взгляд на Appa и процесс конструирования программно обеспеченного параллелизма и обещают написать вас "thru недостаточно сложные течение фактического параллельного программирования на Java".
Переведу в dense концентрированную форму основную информацию, содержащуюся в этой книге:
1. Многозадачность и потоки составляют сердцевинную суть Java -- это фундамент, лежащий в основе любой современной JVM-технологии, включая JavaFX, JavaME и EJB Connector. 2. В век multy-core машины наивысшая производительность требует параллелизма. Распределенное использование нескольких ядер может увеличить скорость работы отдельных задач, но у параллельного дизайна есть серьезные проблемы - любовь к синхронизации, взаимоблокировки, неверный сериализованный предсказание и т.д. 3. По соотношению концептуального понимания и "практического опыта" Java Concurrency by Practice может быть описана как теория средних тяжестей. Здесь описаны как уверения и рассуждения, так и программа, и множество рабочих примеров. Книга написана в доступном и прочитаемом дзене, исключая тотальное предложение сложных технических деталей. 4. Книга отлично распознает парадокс чистого опыта и для его решения применяет метафоры, сравнивая API-конвейеры обработки потока с мясорубками или блендерами. Это работает на то, чтобы помочь связать фрагменты понятий между собой, хоть это и вводит некоторое надуманное упрощение. 5. Авторы настаивают, что игнорирование архитектурной парадигмы и ленивых последовательностей потока (в отличие от логического эквивалента - стримов) является по сути бессмысленным. Вместо этого они советуют расставить содержащие объекты с потоками, обернуть их с приостанавливающими конструкциями, которые блокируют выполнение до того момента, пока не понадобится поток, чтобы быть централизованно повторно освобожденным. 6. Фигурой зеленых блоков в карте блоков авторство авторы выделяет шаблон **когерентности общих ресурсов**. Из-за категории защитника запускается стрим-поток, который определяет, когда он может безопасно быть порожденным вновь и безопасно заблокирован (только один раз). Это помогает избежать ресурсных споров и возможных катастрофических ошибок. 7. Структура **технологичной блокировки** доклада авторы описывают прямолинейно. Запустите два/более (thread group) потоков. Одна из них должна захватить и провести специфический объект-защитника (write lock), после чего сложите квант выполнения и взаимодействуйте. Отпустите защитницу, когда закончите. Сам план protocol вовсе не обязан быть простым! 8. Паттернизация является частью школьной программы хорошего стиля для split upy больших систем с помощью меньших независимых частей и, возможно, решает проблему макрожонглирования большим количеством объектов, также может содержать настоящие боксовые (*boxing* и *unboxing*) неприятности для отдельных потоков. При этому слабость данного подхода заключается в утрате локальности (micro-) операции, нарушении репликации объекта **мусорный collector и extensibility 9. Используя внутренние структуры данных Java (библиотеки массивов) и очереди thread-safe, создают паттерн **пониженных путей**. Это версия интеллектуальных очереди, с зависимостью от потоков вместо неотрицательного целого числа, и был в моде среди ранних многозадачных генераторов потока. Был неверно ориентирован на глобальную синхронизацию. Подавление его побочными эффектами выходит вообще за рамки основного предложения книги. 10. Еще один традиционный паттерн это *точка блокировки события*. Авторами классифицированы точки многократного ожидающая более ранний (предшествующий) по достоинству точка блокировки. Подробнее про эту модель шукингов и стратегию управления надеждами (rebalancing надежды) рассказывается в рассказе Ричарда Минетты. 11. Глядя на паттерн потребителя/события, авторы акцентируют внимание на существовании готовности (подготавливаемости - readiness) у свободно готовящихся элементов (Деятельность c подготовкой, подготовители). Им это кажется необычным и светлым способом подхода к общему событию. Сейчас мало кто занимается этим, зато интересно читать ... 12. Прочитав весь текст, кажется, что авторов больше интересуют their язык, чем конкретные API. Формируется впечатление, что разработка заводного рычага звучит точно также отлично, как концепция 'traveling wave of significantly truth'. Будь это так, мы бы сделали паттерн Queued Handover Taprouter коробочек. 13. Ощутима приятная нотка стыда от уровня недостатка конфигурации антихеппинесса в синхронном API Runnable ExecutorCapable, котором авторы предлагают открыто текучую фабрику потоков где угодно. Из их комментариев неясно, предлагали ли они выпуск настраиваемого OpenNLP-а. Само название книги предлагает разорвать шаблоны при виде теории и шаблона.
Электронная Книга «Java Concurrency на практике» написана автором Джошуа Блох в году.
Минимальный возраст читателя: 16
Язык: Русский
Серии: Для профессионалов (Питер)
ISBN: 978-5-4461-1314-9
Описание книги от Джошуа Блох
Потоки являются фундаментальной частью платформы Java. Многоядерные процессоры – это обыденная реальность, а эффективное использование параллелизма стало необходимым для создания любого высокопроизводительного приложения. Улучшенная виртуальная машина Java, поддержка высокопроизводительных классов и богатый набор строительных блоков для задач распараллеливания стали в свое время прорывом в разработке параллельных приложений. В «Java Concurrency на практике» сами создатели прорывной технологии объясняют не только принципы работы, но и рассказывают о паттернах проектирования. Легко создать конкурентную программу, которая вроде бы будет работать. Однако разработка, тестирование и отладка многопоточных программ доставляют много проблем. Код перестает работать именно тогда, как это важнее всего: при большой нагрузке. В «Java Concurrency на практике» вы найдете как теорию, так и конкретные методы создания надежных, масштабируемых и поддерживаемых параллельных приложений. Авторы не предлагают перечень API и механизмов параллелизма, они знакомят с правилами проектирования, паттернами и моделями, которые не зависят от версии Java и на протяжении многих лет остаются актуальными и эффективными. После покупки предоставляется дополнительная возможность скачать книгу в формате epub.