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

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

На данной странице вы можете читать онлайн книгу "Многопоточное программирование в Java" автора Тимур Машнин. Общий объем текста составляет эквивалент 55 бумажных страниц. Произведение многоплановое и затрагивает разнообразные темы, однако его жанр наиболее вероятно можно определить как книги о компьютерах. Книга была добавлена в библиотеку 09.08.2023, и с этой даты любой желающий может удобно читать ее без регистрации. Наша читалка адаптирована под разные размеры экранов, поэтому текст будет одинаково хорошо смотреться и на маленьком дисплее телефона, и на огромном телевизоре.

Краткое описание

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

Книга Многопоточное программирование в Java онлайн бесплатно


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


ISBN 978-5-0053-1464-2

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

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


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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Читайте также
Я никогда не мечтала работать гувернанткой в семье аристократов. Вот еще. У меня есть своя, отлаженная жизнь на Земле.Но судьба коварно отправила ме...
Война богов и их наций шла всегда. Вспышки горячих конфликтов, перемирия для накопления сил и новые сражения. Теперь к концу подходил очередной подо...
Принимать у себя в гостях бедных родственников не очень-то приятно, особенно человеку, который хоть сколько-то приподнялся по карьерной лестнице. Одна...
Рождение ребёнка самый что ни на есть долгожданный и счастливый праздник! Конечно, если по ряду объективных и субъективных причин этот торжественный д...
Эта книга для тех, кто уже знаком с языком программирования Java и хотел бы научиться разрабатывать настольные приложения Java с графическим интерфейс...
Bootstrap представляет собой свободный фреймворк интерфейсов для быстрой и простой Web разработки. Bootstrap предоставляет шаблоны дизайна, основанные...
Книга содержит 30 тестов по 50 вопросов с ответами на знание Android. Книга предназначена для подготовки к экзаменам и собеседованиям.
Облачные и распределенные вычислительные системы – это быстро развивающаяся IT-область хранения и обработки данных.Современные облачные и распределенн...
Эта книга предназначена для тех, кто хочет научиться программировать на языке Java.С этой книгой вы обучитесь объектно-ориентированному программирован...
Дополненная реальность (Augmented Reality) не является какой-то новой технологией, но ее применение было замечено широкой публикой с появлением игры P...
Создание пользовательских индикаторов и советников для торговой платформы MetaTrader 5 с использованием языка программирования MQL5.
Разработка индикаторов и советников с использованием языка программирования MQL5 для платформы MetaTrader 5. Второе издание, исправленное и дополненно...