В этом виде мы изучим теоретические основы и получим практические навыки работы с многопоточностью и параллелизмом на примере языка программирования Java.
Ссылка на Github репозиторий с примерами кода:
[ Ссылка ]
Дружное сообщество:
[ Ссылка ]
Материалы для разработчиков:
[ Ссылка ]
Рекомендуемые материалы:
Java Concurrency In Practice
[ Ссылка ]
JLS - Memory Model
[ Ссылка ]
00:00:00 - Введение
00:01:20 - Основы многопоточности
00:09:44 - Самоконтроль (основы многопоточности)
00:10:06 - Работа с потоками
00:11:17 - Создание потока с помощью класса Thread
00:14:06 - Создание потока с помощью интерфейса Runnable
00:15:27 - Работа с методом Thread.sleep()
00:16:45 - Работа методом join()
00:18:54 - Приоритеты потоков
00:21:17 - daemon потоки
00:23:27 - Самоконтроль (работа с потоками)
00:23:50 - Синхронизация данных
00:28:10 - Мьютексы и ключевое слово synchronized
00:31:01 - Встроенный монитор (intrisic lock)
00:32:39 - Использование объекта в качестве монитора
00:34:19 - Работа с ReentrantLock
00:41:56 - Работа с Semaphore
00:45:19 - Работа с Exchanger
00:47:05 - Deadlock vs Livelock vs Starvation
00:49:35 - Пример Deadlock
00:52:38 - Пример Livelock
00:54:45 - Пример Starvation
00:56:07 - Механизм CAS
01:00:42 - Самоконтроль (синхронизация данных)
01:01:00 - Потокобезопасные коллекции
01:02:42 - Работа с synchorized ArrayList
01:02:36 - Работа с BlockingQueue
01:05:26 - Работа с PriorityQueue
01:07:06 - Работа с CopyOnWriteArray
01:10:04 - Работа с ConcurrentHashMap
01:12:33 - Самоконтроль (потокобезопасные коллекции)
01:12:48 - Executor Framework
01:14:47 - Работа с SingleThreadPool
01:15:54 - Работа с FixedThreadPool
01:17:35 - Работа со ScheduledThreadPool
01:19:08 - Работа с СachedThreadPool
01:20:29 - Концепция Callable и Future
01:23:31 - ForkJoin Framework
01:28:25 - Виртуальные потоки
01:34:39 - Заключение
![](https://s2.save4k.ru/pic/m-7EljqdxpA/mqdefault.jpg)