Re[5]: Не делимые операции потоков
От: korostoff Россия  
Дата: 16.06.06 08:05
Оценка: 7 (2)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, korostoff, Вы писали:


K>>Да, если переменная не volatile или если между запись в одном потоке/чтение в другом не было memory barrier (т.е. если после записи не освобожден монитор, а перед чтением не получен ТОТЖЕ монитор).


А>Тут я вас не понял. Почему именно "тотже" монитор? Поясните пожалуйста


Я пытался . Видимо лучше меня это объяснено в JSR133 FAQ: What does synchronization do? http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#synchronization

А>Вот здесь тоже есть разногласия в понимании JLS . Вы пишите "ВСЕ иземененные переменные", а есть мнение, что только те, к которым относиться замок. Иными словами, освобождения замка объекта приводит к записи данных объекта в общую память. А если процесс менял данные других объектов?


Цитата из JLS 2.0 "17.6 Rules about the Interaction of Locks and Variables"

...if a thread is to perform an unlock action on any lock, it must first copy all assigned values in its working memory back out to main memory.

...

a lock action acts as if it flushes all variables from the thread's working memory; before use they must be assigned or loaded from main memory.


А>Вот этого я совсем не понял. Можете пояснить?


См. JSR133 FAQ и Fixing the Java Memory Model http://www-128.ibm.com/developerworks/library/j-jtp03304/
Re[6]: Не делимые операции потоков
От: boluba  
Дата: 16.06.06 13:20
Оценка:
Здравствуйте, korostoff, Вы писали:

K>Я пытался . Видимо лучше меня это объяснено в JSR133 FAQ: What does synchronization do? http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#synchronization


Понял.

K>Цитата из JLS 2.0 "17.6 Rules about the Interaction of Locks and Variables"


Согласен.

K>См. JSR133 FAQ и Fixing the Java Memory Model http://www-128.ibm.com/developerworks/library/j-jtp03304/


Перечитал JMM в JLS3. Разобрался.

Спасибо.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.