SlideShare a Scribd company logo
1 of 50
Download to read offline
Java Memory Model
Quick introduction
Юрий Кисляк @ EIS Group
Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Как выполняется наш код?
Как выполняется мой код?
Ожидание Реальность
Как выполняется наш код?
Как выполняется мой код?
Ожидание Реальность
Program order (PO)
Как выполняется наш код?
*example
Как выполняется мой код?
Ожидание Реальность
Program order (PO)
Reordering:
(sh)it happens...
Кто виноват?
1. Compiler (javac, JIT)
2. Runtime
3. Hardware
Что делать?
Memory Model
Отвечает на вопрос:
Какие данные я смогу увидеть в
конкретной точке выполнения
программы?
Что делать?
Memory Model
Отвечает на вопрос:
Какие данные я смогу увидеть в
конкретной точке выполнения
программы?
- Видимость
- Порядок (допустимые оптимизации)
- Атомарность
Атомарность
Атомарность
Атомарность
Какие данные я смогу увидеть в
конкретной точке выполнения
программы?
- Видимость
- Атомарность
- Порядок
Java memory model
Before java 5.0: “Once upon a time…”
Java memory model
Before java 5.0: “Once upon a time…”
After java 5.0: “JSR 133”
https://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf
Agenda
- Program Order
- Memory Model
- Sequential consistency
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Sequentially consistent
1. В каждый момент времуни
выполняется одна операция
2. Каждая операция видит
результат всех прдыдущих
3. Порядок выполения
согласован с порядком
программы (program order)
Sequentially consistent - непригодна
Data race
Sequentially consistent - непригодна
1. Несколько потоков
одновременно обращаются к
переменной.
2. Один из потоков пишет.
3. Нет синхронизации.
* не путать с race condition
Data race
Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Syncronization
JMM: relaxed model
● “Обычные”инструкции
упорядочены внутри своего потока
● Synchronization actions
упорядочены глобально между всеми потоками
JMM: relaxed model
● “Обычные”инструкции
упорядочены внутри своего потока
● Synchronization actions
упорядочены глобально между всеми потоками
Synchronization order
* не запоминаем этот слайд
Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Synchronized-with (partial order)
● v-read(a) -SW-> [следующий в SO] v-write(a)
● lock(m) -SW-> [следующий в SO] unlock(m)
Synchronized-with (partial order)
● v-read(a) -SW-> [следующий в SO] v-write(a)
● lock(m) -SW-> [следующий в SO] unlock(m)
Happens-before (partial order)
HB = {PO,SW}+ (транзитивное замыкание)
Happens-before (partial order)
HB = {PO,SW}+ (транзитивное замыкание)
Happens-before (partial order)
HB = {PO,SW}+ (транзитивное замыкание)
Happens-before Visibility
Happens-before Visibility
SW
SW
SW
u=7;
u != 7 &&
SW
SW
SW
Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Ta-da!

More Related Content

What's hot

Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Aleksey Bragin
 
Операционные системы 2015, лекция № 8
Операционные системы 2015, лекция № 8Операционные системы 2015, лекция № 8
Операционные системы 2015, лекция № 8Aleksey Bragin
 
2 to 1500 cross-platform multiplayer units on the map
2 to 1500 cross-platform multiplayer units on the map2 to 1500 cross-platform multiplayer units on the map
2 to 1500 cross-platform multiplayer units on the mapDevGAMM Conference
 
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPFlyElephant
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестированиеSPB SQA Group
 
7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад Опухлый7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад ОпухлыйMagecom UK Limited
 
Григорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияГригорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияYandex
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantomyaevents
 
monit — простой мониторинг
monit — простой мониторингmonit — простой мониторинг
monit — простой мониторингAndrew Pantyukhin
 
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Aleksey Bragin
 
Ivan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applicationsIvan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applicationsDrupalSib
 
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаАндрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаYandex
 
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Aleksey Bragin
 
Kubasov 1 7_deploy
Kubasov 1 7_deployKubasov 1 7_deploy
Kubasov 1 7_deploykuchinskaya
 
Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Yuri Kudryavcev
 
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают..."Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...Egor Petrov
 
Android Telegram S Optimizations
Android Telegram S OptimizationsAndroid Telegram S Optimizations
Android Telegram S OptimizationsStepan Korshakov
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...it-people
 

What's hot (20)

Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
Операционные системы 2015, лекция № 8
Операционные системы 2015, лекция № 8Операционные системы 2015, лекция № 8
Операционные системы 2015, лекция № 8
 
2 to 1500 cross-platform multiplayer units on the map
2 to 1500 cross-platform multiplayer units on the map2 to 1500 cross-platform multiplayer units on the map
2 to 1500 cross-platform multiplayer units on the map
 
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестирование
 
7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад Опухлый7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад Опухлый
 
Григорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияГригорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестирования
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantom
 
monit — простой мониторинг
monit — простой мониторингmonit — простой мониторинг
monit — простой мониторинг
 
Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6Операционные системы 2015, лекция № 6
Операционные системы 2015, лекция № 6
 
Ivan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applicationsIvan Kotlyar. PostgreSQL in web applications
Ivan Kotlyar. PostgreSQL in web applications
 
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаАндрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
 
Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3Операционные системы 2015, лекция № 3
Операционные системы 2015, лекция № 3
 
Kubasov 1 7_deploy
Kubasov 1 7_deployKubasov 1 7_deploy
Kubasov 1 7_deploy
 
Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1Проектирование приложений в IBM Cognos ТМ1
Проектирование приложений в IBM Cognos ТМ1
 
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают..."Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...
 
Android Telegram S Optimizations
Android Telegram S OptimizationsAndroid Telegram S Optimizations
Android Telegram S Optimizations
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
 

Viewers also liked

JVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииJVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииNikita Lipsky
 
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine "Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine Vladimir Ivanov
 
Николай Папирный Тема: "Java memory model для простых смертных"
Николай Папирный Тема: "Java memory model для простых смертных"Николай Папирный Тема: "Java memory model для простых смертных"
Николай Папирный Тема: "Java memory model для простых смертных"Ciklum Minsk
 
Lesson 3 altered states of consciousness 2013
Lesson 3   altered states of consciousness 2013Lesson 3   altered states of consciousness 2013
Lesson 3 altered states of consciousness 2013Crystal Delosa
 
States Of Consciousness
States Of ConsciousnessStates Of Consciousness
States Of ConsciousnessMostafa Ewees
 
Lesson 1 what is consciousness
Lesson 1   what is consciousnessLesson 1   what is consciousness
Lesson 1 what is consciousnesscoburgpsych
 
Consciousness PowerPoint
Consciousness PowerPointConsciousness PowerPoint
Consciousness PowerPointKRyder
 
States Of Consciousness
States Of ConsciousnessStates Of Consciousness
States Of ConsciousnessAiyana Cruz
 
What is consciousness?
What is consciousness?What is consciousness?
What is consciousness?DMLab
 
Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'
Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'
Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'Dilip Barad
 
States of Consciousness
States of ConsciousnessStates of Consciousness
States of Consciousnessshegan629
 
Теоретический минимум для понимания Java Memory Model (для JPoint 2014)
Теоретический минимум для понимания Java Memory Model (для JPoint 2014)Теоретический минимум для понимания Java Memory Model (для JPoint 2014)
Теоретический минимум для понимания Java Memory Model (для JPoint 2014)Roman Elizarov
 

Viewers also liked (15)

JVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииJVM: краткий курс общей анатомии
JVM: краткий курс общей анатомии
 
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine "Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
 
E-sensation colour
E-sensation colourE-sensation colour
E-sensation colour
 
Николай Папирный Тема: "Java memory model для простых смертных"
Николай Папирный Тема: "Java memory model для простых смертных"Николай Папирный Тема: "Java memory model для простых смертных"
Николай Папирный Тема: "Java memory model для простых смертных"
 
Lesson 3 altered states of consciousness 2013
Lesson 3   altered states of consciousness 2013Lesson 3   altered states of consciousness 2013
Lesson 3 altered states of consciousness 2013
 
States Of Consciousness
States Of ConsciousnessStates Of Consciousness
States Of Consciousness
 
IW-AON UNITY CONSCIOUSNESS MARKETING _ EXPANSION OF MARKETING 3.0
IW-AON UNITY CONSCIOUSNESS MARKETING _ EXPANSION OF MARKETING 3.0IW-AON UNITY CONSCIOUSNESS MARKETING _ EXPANSION OF MARKETING 3.0
IW-AON UNITY CONSCIOUSNESS MARKETING _ EXPANSION OF MARKETING 3.0
 
Lesson 1 what is consciousness
Lesson 1   what is consciousnessLesson 1   what is consciousness
Lesson 1 what is consciousness
 
Consciousness PowerPoint
Consciousness PowerPointConsciousness PowerPoint
Consciousness PowerPoint
 
Complexity thoughts
Complexity thoughtsComplexity thoughts
Complexity thoughts
 
States Of Consciousness
States Of ConsciousnessStates Of Consciousness
States Of Consciousness
 
What is consciousness?
What is consciousness?What is consciousness?
What is consciousness?
 
Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'
Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'
Stream of Consciousness in Virginia Woolf's 'To The Lighthouse'
 
States of Consciousness
States of ConsciousnessStates of Consciousness
States of Consciousness
 
Теоретический минимум для понимания Java Memory Model (для JPoint 2014)
Теоретический минимум для понимания Java Memory Model (для JPoint 2014)Теоретический минимум для понимания Java Memory Model (для JPoint 2014)
Теоретический минимум для понимания Java Memory Model (для JPoint 2014)
 

Similar to Java Memory Model. Quick introduction.

CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017Alex Chistyakov
 
Excelsior JET в действии
Excelsior JET в действииExcelsior JET в действии
Excelsior JET в действииNikita Lipsky
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими рукамиchaykaborya
 
Async Javascript
Async JavascriptAsync Javascript
Async JavascriptGetDev.NET
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Fwdays
 
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)Ontico
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo Development
 
Monitoring and Load testing
Monitoring and Load testingMonitoring and Load testing
Monitoring and Load testingFedor Malyshkin
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Alexander Syrotenko
 
Выявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхВыявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхPavel Grushetzky
 
Распределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на JavaРаспределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на Javaaragozin
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потаповrit2010
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потаповrit2010
 
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...Aleks Y
 
Внедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокВнедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокRoman_Lut
 
Дмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПОДмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПОDaria Oreshkina
 

Similar to Java Memory Model. Quick introduction. (20)

CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
Excelsior JET в действии
Excelsior JET в действииExcelsior JET в действии
Excelsior JET в действии
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими руками
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"
 
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
 
Monitoring and Load testing
Monitoring and Load testingMonitoring and Load testing
Monitoring and Load testing
 
Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?Multithreading in JS. Myth or reality?
Multithreading in JS. Myth or reality?
 
Выявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхВыявление неполадок в Java приложениях
Выявление неполадок в Java приложениях
 
Распределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на JavaРаспределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на Java
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потапов
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потапов
 
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
Veeam - Why backup Oracle DB in a VM with Veeam B&R is easy and reliable way ...
 
Внедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движокВнедрение параллельного рендеринга в игровой движок
Внедрение параллельного рендеринга в игровой движок
 
Дмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПОДмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПО
 

Java Memory Model. Quick introduction.