Size: a a a

2021 March 26

v

vorobyoff in pro.jvm
Или же их порядок строго контролируется, как я понимаю, jmm
источник

t

tikkitavy in pro.jvm
если поле volatile то оно всегда читается из памяти а не из кеша треда, если не вру
источник

DB

Dmitry Baynak in pro.jvm
vorobyoff
Привет, подскажите пожалуйста как работает volatile, в jsr 133 написано, что обращение к полю, помеченному как volatile, применяются те же инструкции, как и к sync методам, на чтение - monitor release, на запись - monitor acquire.
Я сделал вывод, что при использовании либо void sync doSmth() { … }, либо volatile someField, выполняются одинаковые инструкции, так ли это?
в jmm про "monitor release" и "monitor acquire" или про "sync" методы вроде бы ничего не говорится, там про happens before и т.д.
соответственно, все рассуждения должны проводиться используя happens before и прочие отношения, дабы не угадывать какие инструкции и действия реально совершает компилятор
источник

v

vorobyoff in pro.jvm
tikkitavy
если поле volatile то оно всегда читается из памяти а не из кеша треда, если не вру
Это понятно, но как это может влиять на порядок в котором компилятор захочет их проинициализировать?
источник

DB

Dmitry Baynak in pro.jvm
vorobyoff
Это понятно, но как это может влиять на порядок в котором компилятор захочет их проинициализировать?
"это понятно"
а что, если не секрет, вам понятно?
источник

DB

Dmitry Baynak in pro.jvm
что такое, если не секрет, "кеш треда"?
источник

v

vorobyoff in pro.jvm
У каждого потока есть свой микро-хип
источник

DB

Dmitry Baynak in pro.jvm
я просто прощу прощения, но у потоков "хипа", который как-то связан с volatile, вроде бы нет
источник

DB

Dmitry Baynak in pro.jvm
есть кеши проца, если о них речь
но если вы так о них рассуждаете, то, пожалуйста, проводите размышления о работе многопоточной программы на java в соотв. с её моделью
источник

v

vorobyoff in pro.jvm
Dmitry Baynak
я просто прощу прощения, но у потоков "хипа", который как-то связан с volatile, вроде бы нет
Причем тут одно и другое?
источник

v

vorobyoff in pro.jvm
Под каждый поток выделяется память, и у каждого потока есть кэш
источник

DB

Dmitry Baynak in pro.jvm
нет у потоков кешей
источник

DB

Dmitry Baynak in pro.jvm
есть понятие tlab'ов, но это, опять же, не про volatile read/write
источник

t

tikkitavy in pro.jvm
Dmitry Baynak
есть кеши проца, если о них речь
но если вы так о них рассуждаете, то, пожалуйста, проводите размышления о работе многопоточной программы на java в соотв. с её моделью
хватило бы трех слов чтоб поправить
источник

v

vorobyoff in pro.jvm
Так стоп, сейчас погуглил и действительно - кэшей у потоков нет, my bad
источник

v

vorobyoff in pro.jvm
Видимо я с чем то перепутал
источник

DB

Dmitry Baynak in pro.jvm
tikkitavy
хватило бы трех слов чтоб поправить
я повторюсь: если есть путаница в понятиях "кеш проца" и некоем "кеше треда", то лучше рассуждать в рамках модели
источник

v

vorobyoff in pro.jvm
Возможно я с ним и спутал
источник

v

vorobyoff in pro.jvm
В общем my bad
источник

v

vorobyoff in pro.jvm
Но это не отменяет изначального вопроса
источник