Условия гонки в многопоточности Java
Автор: Jakob Jenkov
Загружено: 2020-10-27
Просмотров: 41458
Состояние гонки — это ситуация, которая может возникнуть, когда два или более потоков обращаются к одним и тем же переменным таким образом, что планирование потоков может повлиять на конечный результат. Два потока «гонятся» за доступ к переменным. Существует два основных шаблона доступа, которые могут привести к состоянию гонки: «проверка-затем-действие» и «чтение-изменение-запись». В этом видео я расскажу об обоих этих причинах.
Участок кода, где могут возникнуть условия гонки, называется критической секцией. Для защиты критических секций их необходимо сделать атомарными. В этом видео я также покажу несколько примеров того, как это сделать.
Состояние гонки в параллельном программировании может легко привести к ошибкам параллельного выполнения в ваших приложениях, поэтому важно понимать, что такое состояние гонки и как его избежать!
Главы:
0:00 Введение в условия гонки
0:54 Пример условия гонки чтения-изменения-записи
8:06 Решение «чтение-изменение-запись» с атомарным синхронизированным блоком
9:47 Один поток пишет, другой поток читает — пример
13:27 Два потока обращаются к одним и тем же объектам, но не записывают данные в одни и те же объекты.
16:24 Пример состояния гонки «проверь, затем действуй»
20:24 Решение «проверь, затем действуй» с атомарным синхронизированным блоком
Состояния гонки — текст:
http://tutorials.jenkov.com/java-conc...
Учебники по многопоточности в Java — текст / видео:
http://tutorials.jenkov.com/java-conc...
• Java Concurrency and Multithreading
Модель памяти Java — основы — текст / Видео:
http://tutorials.jenkov.com/java-conc...
• The Java Memory Model - The Basics
Java выполняется до гарантии — видео:
• Java Happens Before Guarantee - Java Memor...
Синхронизированная Java — текст / Видео:
http://tutorials.jenkov.com/java-conc...
• Java Synchronized - The synchronized keywo...
Java Volatile — текст/видео:
http://tutorials.jenkov.com/java-conc...
• Java Volatile
Java Lambda-выражения — текст/ видео:
http://tutorials.jenkov.com/java/lamb...
• Java Lambda Expressions
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: