§66 Синхронизированный доступ к разделяемым mutable данным

Слайд 2

JLS гарантирует, что чтение-запись переменных примитивных типов кроме long, double – атомарно
Синхронизация

JLS гарантирует, что чтение-запись переменных примитивных типов кроме long, double – атомарно
необходима для надежной коммуникации между потоками, и для взаимного исключения
Атомарно – не значит синхронизированно

Слайд 3

Hoisting optimization (для не синхронизированных переменных):

Hoisting optimization (для не синхронизированных переменных):

Слайд 4

Недостаточно синхронизировать только чтение или только запись

Недостаточно синхронизировать только чтение или только запись

Слайд 5

Менее громоздкое исправление

Менее громоздкое исправление

Слайд 6

++ - не атомарный оператор. На самом деле это ДВЕ операции: прочитать

++ - не атомарный оператор. На самом деле это ДВЕ операции: прочитать
значение, записать значение + 1
Можно исправить это добавив syncronized и убрав volatile
Но лучше так:
Имя файла: §66-Синхронизированный-доступ-к-разделяемым-mutable-данным.pptx
Количество просмотров: 60
Количество скачиваний: 0