Многопоточность глазами разработчика

В этом виде мы изучим теоретические основы и получим практические навыки работы с многопоточностью и параллелизмом на примере языка программирования 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 - Заключение

Смотрите также