Главная » Знания и навыки » Многопоточное программирование в Java (сразу полная версия бесплатно доступна) Тимур Машнин читать онлайн полностью / Библиотека

Многопоточное программирование в Java

На нашем сайте вы можете читать онлайн «Многопоточное программирование в Java». Эта электронная книга доступна бесплатно и представляет собой целую полную версию без сокращений. Кроме того, доступна возможность слушать аудиокнигу, скачать её через торрент в формате fb2 или ознакомиться с кратким содержанием. Жанр книги — Знания и навыки, Компьютерная литература, Книги о компьютерах. Кроме того, ниже доступно описание произведения, предисловие и отзывы читателей. Регулярные обновления библиотеки и улучшения функционала делают наше сообщество идеальным местом для любителей книг.

0 баллов
0 мнений
0 чтений

Дата выхода

28 января 2021

Краткое содержание книги Многопоточное программирование в Java, аннотация автора и описание

Прежде чем читать книгу целиком, ознакомьтесь с предисловием, аннотацией, описанием или кратким содержанием к произведению Многопоточное программирование в Java. Предисловие указано в том виде, в котором его написал автор (Тимур Машнин) в своем труде. Если нужная информация отсутствует, оставьте комментарий, и мы постараемся найти её для вас. Обратите внимание: Читатели могут делиться своими отзывами и обсуждениями, что поможет вам глубже понять книгу. Не забудьте и вы оставить свое впечатие о книге в комментариях внизу страницы.

Описание книги

В многопроцессорных системах многопоточность решает проблему параллельного выполнения кода с наименьшими затратами. Поэтому многопоточность используется в большинстве реальных приложений. И Java, как и большинство языков программирования, поддерживает многопоточность. Познакомьтесь с реализацией процессов и потоков в Java, с управлением и синхронизацией потоков. Узнайте о пуле потоков, потокобезопасных коллекциях, синхронизаторах и параллельных потоках Stream.

Многопоточное программирование в Java читать онлайн полную книгу - весь текст целиком бесплатно

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

Текст книги

Шрифт
Размер шрифта
-
+
Межстрочный интервал

Атомарный доступ и volatile

В программировании атомарное действие – это действие, которое происходит за один раз.

Атомарное действие не может остановиться посередине: оно либо происходит полностью, либо вообще не происходит.

Никакие промежуточные результаты атомарного действия не видны, пока действие не будет завершено.

Например, оператор инкремента ++, не является атомарным действием.

Он состоит из следующих действий:

– Получить текущее значение.

– Увеличить полученное значение на 1.

Тут будет реклама 1

– Сохранить увеличенное значение.

Поэтому очень простые выражения могут определять сложные действия, которые могут разлагаться на другие действия.

Но есть действия, которые являются атомарными:

Это чтение и запись всех переменных, ссылочных на объекты и примитивных переменных, за исключением переменных типа long и double.

Так как в Java 64-битные long и double значения рассматриваются как два 32-битных значения.

Это означает, что 64-разрядная операция записи выполняется как две отдельные 32-разрядные операции.

Тут будет реклама 2

И это значит, что действия с long и double переменными не являются потокобезопасными.

Когда несколько потоков получают доступ к long или double значению без синхронизации, это может вызвать проблемы.

Чтобы обеспечить атомарность действий с long и double значениями можно использовать ключевое слово volatile.

Если переменная объявлена как volatile, это означает, что она может изменяться разными потоками.

Среда выполнения JRE неявно обеспечивает синхронизацию при доступе к volatile-переменным, но с очень большой оговоркой: чтение volatile-переменной и запись в volatile-переменную синхронизированы, а неатомарные операции, такие как операция инкремента или декремента ? нет.

Тут будет реклама 3

Атомарные действия не могут перемешиваться, поэтому их можно использовать, не опасаясь интерференции потоков.

Однако это не устраняет необходимости синхронизации атомарных действий, так как возможны ошибки согласованности памяти.

Тут будет реклама 4

В целях повышения производительности среда выполнения JRE сохраняет локальные копии переменных для каждого потока, который на них ссылается.

Такие «локальные» копии переменных работают как кэш и помогают потоку избежать обращения к главной памяти каждый раз, когда требуется получить значение переменной.

Поэтому если один поток изменит значение переменной, то другой поток может не увидеть это изменение, так как будет считывать значение из своего кэша.

Добавить мнение

Ваша оценка

Кликните на изображение чтобы обновить код, если он неразборчив

Мнения

Еще нет комментариев о книге Многопоточное программирование в Java, и ваше мнение может быть первым и самым ценным! Расскажите о своих впечатлениях, поделитесь мыслями и отзывами. Ваш отзыв поможет другим читателям сделать правильный выбор. Не стесняйтесь делиться своим мнением!

Другие книги автора

Понравилась эта книга? Познакомьтесь с другими произведениями автора Тимур Машнин! В этом разделе мы собрали для вас другие книги, написанные вашим любимым писателем.

Похожие книги