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

Автор
Дата выхода
28 января 2021
Краткое содержание книги Многопоточное программирование в Java, аннотация автора и описание
Прежде чем читать книгу целиком, ознакомьтесь с предисловием, аннотацией, описанием или кратким содержанием к произведению Многопоточное программирование в Java. Предисловие указано в том виде, в котором его написал автор (Тимур Машнин) в своем труде. Если нужная информация отсутствует, оставьте комментарий, и мы постараемся найти её для вас. Обратите внимание: Читатели могут делиться своими отзывами и обсуждениями, что поможет вам глубже понять книгу. Не забудьте и вы оставить свое впечатие о книге в комментариях внизу страницы.
Описание книги
В многопроцессорных системах многопоточность решает проблему параллельного выполнения кода с наименьшими затратами. Поэтому многопоточность используется в большинстве реальных приложений. И Java, как и большинство языков программирования, поддерживает многопоточность. Познакомьтесь с реализацией процессов и потоков в Java, с управлением и синхронизацией потоков. Узнайте о пуле потоков, потокобезопасных коллекциях, синхронизаторах и параллельных потоках Stream.
Многопоточное программирование в Java читать онлайн полную книгу - весь текст целиком бесплатно
Перед вами текст книги, разбитый на страницы для удобства чтения. Благодаря системе сохранения последней прочитанной страницы, вы можете бесплатно читать онлайн книгу Многопоточное программирование в Java без необходимости искать место, на котором остановились. А еще, у нас можно настроить шрифт и фон для комфортного чтения. Наслаждайтесь любимыми книгами в любое время и в любом месте.
Текст книги
То есть, система некоторое время выполняет один поток, затем резко переключается на выполнение другого потока, и так далее по кругу.
Таким образом, создается впечатление одновременного выполнения нескольких задач.
Но при этом теряется производительность.
Если процессор многоядерный, тогда переключения может не потребоваться.
Система будет посылать каждый поток на отдельное ядро.
Несколько потоков могут выполняться одновременно, каждый на своем ядре.
Но тут есть проблема.
Для использования преимуществ многоядерности, код программы должен быть оптимизирован для выполнения на многоядерных процессорах.
Это означает, что программа, или процесс, должна быть максимально распараллелена в коде по отдельным задачам.
Если у вас есть многоядерный процессор, и у нас есть два ядра или два процессора P0 и P1, у вас будет возможность создать единицы выполнения, называемые потоками, T1, T2, T3.
И операционная система сама позаботится о планировании этих потоков на процессорах по мере их доступности.
Таким образом вы получаете многопоточное выполнение.
Платформа Java обеспечивает поддержку многопоточности с помощью пакета java.util.concurrent.
В многопоточном программировании существуют две основные единицы исполнения – это процессы и потоки.
И многопоточное программирование на Java в основном касается потоков.
Чем отличается поток от процесса?
Процесс имеет автономную среду исполнения.
Обычно процесс имеет полный, приватный набор базовых ресурсов среды выполнения, например, каждый процесс имеет собственное выделенное пространство памяти.
Процессы часто ассоциируются с приложением.
Однако то, что пользователь видит, как одно приложение, может быть на самом деле набором взаимодействующих процессов.
Для облегчения взаимодействия между процессами большинство операционных систем поддерживают Inter Process Communication (IPC).
IPC используется не только для связи между процессами в одной и той же системе, но и процессов в разных системах.
Java поддерживает IPC с помощью сокетов, библиотек RMI и CORBA.
Каждый экземпляр работающей виртуальной машины Java представляет собой один процесс.
Приложение Java может создавать дополнительные процессы с помощью объекта ProcessBuilder.
Потоки существуют в процессе – каждый процесс имеет хотя бы один поток.
Потоки используют общие ресурсы процесса, включая память и открытые файлы.











