Библиотека knigago >> Компьютеры: Языки и системы программирования >> Java, Java Script >> Многопоточное программирование в Java


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1851, книга: Уроки для «Вожака стаи»
автор: Цезарь Миллан

"Уроки для «Вожака стаи»" Цезаря Миллана - это увлекательная и поучительная книга, которая раскрывает секреты воспитания и общения с собаками. Миллан, известный как "Вожак стаи", делится своим опытом и методиками, которые помогут владельцам собак наладить гармоничные отношения со своими питомцами. Миллан объясняет, что собаки - это социальные существа, которые инстинктивно ищут руководства и защиты. Книга учит, как стать эффективным лидером для вашей собаки, устанавливая...

СЛУЧАЙНАЯ КНИГА

Жильцы. Кир Булычев
- Жильцы

Жанр: Научная Фантастика

Год издания: 2006

Серия: Гусляр — 3. Возвращение в Гусляр

Тимур Сергеевич Машнин - Многопоточное программирование в Java

Многопоточное программирование в Java
Книга - Многопоточное программирование в Java.  Тимур Сергеевич Машнин  - прочитать полностью в библиотеке КнигаГо
Название:
Многопоточное программирование в Java
Тимур Сергеевич Машнин

Жанр:

Java, Java Script, Параллельное и распределенное программирование

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

9785005314642

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

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

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


Читаем онлайн "Многопоточное программирование в Java" (ознакомительный отрывок). Главная страница.

стр.

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

© Тимур Машнин, 2021


ISBN 978-5-0053-1464-2

Создано в интеллектуальной издательской системе Ridero

Процессы и потоки

Книгаго: Многопоточное программирование в Java. Иллюстрация № 1
Чтобы начать работу с основами многопоточного программирования, давайте начнем с изучения потоков.

Каждая операционная система поддерживает потоки в той или иной форме.


Книгаго: Многопоточное программирование в Java. Иллюстрация № 2
Вначале, все усилия по повышению производительности процессоров были направлены на наращивание тактовой частоты, но со все большим увеличением частоты, наращивать её стало тяжелее, так как это требовало увеличения охлаждения процессоров.

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

Принцип увеличения производительности процессора за счёт нескольких ядер, заключается в разделении выполнения потоков или различных задач на несколько ядер.

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

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

Например, Windows — это многозадачная операционная система, то есть она может одновременно выполнять две и более программ или процессов.

И Windows — это также и многопоточная операционная система.

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

Выполнение этих потоков планируется так же, как и выполнение процессов.

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

Операционная система, делает это хитро, за счет переключения между выполнением этих потоков (эти переключения мгновенны и время идет в миллисекундах).

То есть, система некоторое время выполняет один поток, затем резко переключается на выполнение другого потока, и так далее по кругу.

Таким образом, создается впечатление одновременного выполнения нескольких задач.

Но при этом теряется производительность.

Если процессор многоядерный, тогда переключения может не потребоваться.

Система будет посылать каждый поток на отдельное ядро.

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

Но тут есть проблема.

Для использования преимуществ многоядерности, код программы должен быть оптимизирован для выполнения на многоядерных процессорах.

Это означает, что программа, или процесс, должна быть максимально распараллелена в коде по отдельным задачам.

Если у вас есть многоядерный процессор, и у нас есть два ядра или два процессора P0 и P1, у вас будет возможность создать единицы выполнения, называемые потоками, T1, T2, T3.


Книгаго: Многопоточное программирование в Java. Иллюстрация № 3
И операционная система сама позаботится о планировании этих потоков на процессорах по мере их доступности.

Таким образом вы получаете многопоточное выполнение.

Платформа Java обеспечивает поддержку многопоточности с помощью пакета java.util.concurrent.

В многопоточном программировании существуют две основные единицы исполнения — это процессы и потоки.


Книгаго: Многопоточное программирование в Java. Иллюстрация № 4
И многопоточное программирование на Java в основном касается потоков.

Чем отличается поток от процесса?

Процесс имеет автономную среду исполнения.


Книгаго: Многопоточное программирование в Java. Иллюстрация № 5
Обычно процесс имеет полный, --">
стр.

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

Книги схожие с «Многопоточное программирование в Java» по жанру, серии, автору или названию: