Точка входа в программирование
21.4K subscribers
912 photos
164 videos
1 file
2.45K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Что такое многотопоточность? Разбираем основы

Когда мы запускаем простую программу, то она исполняется на одном ядре процессора.

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

Как работает многопоточность (с примером на Java), читайте в статье:

https://tprg.ru/bUgr

#потоки #java
Введение в многопоточность в Java

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

В видео объясняется наглядно и простым языком, как работать с потоками на Java:

https://youtu.be/0Cdsk2BeNA8

#java #потоки
Задача обедающих философов

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

За круглым столом сидят 5 философов. Перед каждым философом стоит тарелка спагетти, а между тарелками лежит по одной вилке (всего их 5).

В каждый момент философ может:
— поесть (ему необходимо две вилки);
— размышлять (вилки не нужны).

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

Вот как можно решить эту задачу на Java (и никто из философов не умрёт от голодания): https://tprg.ru/vTdz

#потоки #задачи
Многопоточность в Java

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

У многопоточности существует множество нюансов, и подробно они объясняются в серии статей:

1. Потоки.
2. Синхронизация.
3. Взаимодействие.
4. Callable и Future.
5. Executor, ThreadPool и Fork Join.
6. Барьер.

#java #потоки
Лекция по многопоточности в Java

Реализация многопоточности в Java-приложении позволяет распараллелить и существенно быстрее выполнять ресурсоёмкие вычисления. Однако в теме существует множество нюансов, поскольку необходимо управлять сразу множеством потоков и не допускать ошибок их выполнения.

Лекция от Тагира Валеева, разработчика из JetBrains, поможет глубже разобраться в теме многопоточности:

https://youtu.be/ShzQJUFzq58

#потоки #java