jugmsk JUG.MSK Meetup #7 (17.04.2014 — 17.04.2014)

How the Java memory model works

img

Все абстракции рано или поздно протекают, какими бы красивыми и стройными они ни были. Протекают и те, что скрывают за громкой фразой "Write Once, Run Anywhere" особенности исполнения многопоточного кода на реальном железе.

И горе после такой протечки тому, кто не понимает, как всё устроено под капотом. Частенько для того, чтобы разобраться в каком-то поверхностном явлении, приходится разрывать все любезно накрученные слои абстракции. Понимать Модель Памяти Java — важно, но этого мало. Нужно ещё и знать, как эта модель устроена, и понимать, почему именно так. А для этого нужно идти глубже!

Доклад будет состоять из краткого теоретического описания происходящего, а затем решительно перейдёт к расчленению OpenJDK в режиме живого демо. Мы рассмотрим, как реализованы volatile переменные, узнаем, что же такое мембар и почему все так любят x86 и не любят Alpha.