Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемj-itmo.narod.ru
1 §66 Синхронизированный доступ к разделяемым mutable данным
2 JLS гарантирует, что чтение-запись переменных примитивных типов кроме long, double – атомарно Синхронизация необходима для надежной коммуникации между потоками, и для взаимного исключения Атомарно – не значит синхронизированно
3 Hoisting optimization (для не синхронизированных переменных):
4 Недостаточно синхронизировать только чтение или только запись
5 Менее громоздкое исправление
6 ++ - не атомарный оператор. На самом деле это ДВЕ операции: прочитать значение, записать значение + 1 Можно исправить это добавив syncronized и убрав volatile Но лучше так:
7 Лучший способ избежать подобных проблем: не использовать общие не mutable данные Ограничивайте использование mutable данных внутри одного потока Если все же вы используете общие mutable данные каждый поток должен заботиться о синхронизации чтения/записи.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.