No video

Алексей Шипилёв - Близкие Контакты JMM-степени

  Рет қаралды 38,415

JPoint, Joker и JUG ru

JPoint, Joker и JUG ru

Күн бұрын

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
. . . . Алексей Шипилёв - Близкие Контакты JMM-степени
Java-конференция Joker 2016, Санкт-Петербург, 14-15.10.2016
Со времён «Прагматики Java Memory Model» прошло больше двух лет. Но даже у изучавших прошлый доклад специалистов остались странные предубеждения, не подкреплённые спецификацией. В этом докладе мы попытаемся разобрать и развенчать часть этих предубеждений: про всемогущие барьеры, про реордеринги, про недосинхронизацию и другое недовелосипедостроение.
Доклад основан на уже опубликованной статье, и будет включать себя наиболее вкусные примеры. Доклад не будет останавливаться на базовых принципах модели и поэтому требует понимания JMM как минимум на уровне «Прагматики JMM».
Слайды (с исправленными опечатками): shipilev.net/t...

Пікірлер: 24
@elenazelenaya6783
@elenazelenaya6783 4 жыл бұрын
Да, мозги чуток поплавились. Но начинаешь всё понимать совсем скоро. Что бы понять полностью, надо пересмотреть, мне кажется)) Плюс, 25 кадр повлияет конкретнее) Спасибо большое)
@user-ki2ec6bn7h
@user-ki2ec6bn7h 10 ай бұрын
Пол года учу Java, но просмотр этого контента ввергло меня в состояние плоского червя........
@deckardlundgren1438
@deckardlundgren1438 3 жыл бұрын
Крутяяк! Повезло нам с Алексеем!
@waffleboot
@waffleboot 6 жыл бұрын
Хороший доклад! Чую что теперь собеседования надо проводить так: - Знаешь про барьеры памяти? - Нет - Принят Чую что следующий доклад должен быть про гонки, потому что раньше было понятно что это такое, а сейчас какое-то переосмысление понадобится, такое ощущение что эти "красные race" откуда-то из ниоткуда берутся и в общем-то говорят о том, что прочитать можете все что угодно. Потому что если насчет PO,SO,SW,HB ребер еще можно понять, то откуда вспыхивает RACE ребро как-то мало понятно, особенно в контексте формализма модели. Еще интересно, warning на "двойные чтение" есть в IDE? И опять же с PO непонятки, я так понимаю он охватывает actions только внутри одного потока (тогда PO-ов несколько), а inter-thread relations уже задаются через SO (ну и SW,HB как более развитые ребра), просто SO накладываются на PO, только вроде PO из разных потоков, т.е. как бы SO выстраивает некий глобальный (тотальный?) PO всей многопоточной программы (просто термин Program как-то не ясен, то ли речь про поток, то ли про всю многопоточную программу идет речь).
@alexsyrotenko9981
@alexsyrotenko9981 10 ай бұрын
Ну туда, куда я собесился, только про модели памяти и конкарренси были вопросы.
@khvastov.maksym
@khvastov.maksym Жыл бұрын
30:05 "Приколись! От JMM мозги спеклись!" Один из любимых докладов.
@omnesio
@omnesio 3 жыл бұрын
Блин, интересно пздц. Только нихрена не понятно )))
@user-cv9tz2gs4i
@user-cv9tz2gs4i Жыл бұрын
Хоть бы объяснил, что за StoreStore, LoadStore, StoreLoad он пишет в квадратных скобках, параллельно коду. Конечно, софт-навыки при приеме на работу важны. Но это все же лекция. И смысл лекции - предоставить информацию, понятную людям.
@PaulEfremoff
@PaulEfremoff 10 ай бұрын
35:00 В какой вселенной val!=null, а потом val==null? Из какого места вытащено null?
@andreyzubkov629
@andreyzubkov629 3 жыл бұрын
Я правильно понимаю, что на слайде (34:47) в строке if (val != null) { есть опечатка в булевой операции и нужно: if (val == null) { ? Спасибо
@VADemon
@VADemon 3 жыл бұрын
Судя по всему - да, в слайдах вложенный if заменен на троеточия.
@razmus89dragovich20
@razmus89dragovich20 4 жыл бұрын
довольно запутана JMM на первый взгляд, на второй гораздо лучше :)
@Goodloot
@Goodloot 7 жыл бұрын
Судя по всему на слайде с барьерами IRIW опечатка, JMM запрещено выполнение (1,0,1,0)
@landaumanify
@landaumanify 5 жыл бұрын
в слайдах тоже поправлено. 10 минут пытался понять что со мной не так)
@TaranovskiAlex
@TaranovskiAlex 7 жыл бұрын
офигительный доклад, спасибо!
@oleksandrsankin9637
@oleksandrsankin9637 5 жыл бұрын
Очень классная лекция!
@oxotAzapivom
@oxotAzapivom 6 жыл бұрын
Цепочка на 28:46 Когда идет разбор предыдущей цепочки локов мы видим что идет запись в V, после которой идет запись в Supp Далее мы продолжаем наш случай, котором имеет место ТОЛЬКО ЕСЛИ Supp !E Исход один, но это законно вообще? Либо я не понял
@user-dk2xo9hj2m
@user-dk2xo9hj2m 7 жыл бұрын
kzbin.info/www/bejne/eWfFkJd8qdqdgdE и kzbin.info/www/bejne/eWfFkJd8qdqdgdE опечатка, вместо val=supp.get(); надо v=val=supp.get(); иначе мы не увидим инициализированное значение..
@masyaman
@masyaman 6 жыл бұрын
Последний пример не ясен. Почему if (supp == EMPTY) можно, а if (supp == null) нельзя? Если я правильно понял, то из-за того, что supp может быть null из-за того, что при инициализиции Lazy он не был final. А если supp будет null в первом случае, то тогда будет NPE на supp.get()?
@fedoresko
@fedoresko Жыл бұрын
Нет, get внутри synchronized, что дает HP, там будет значение из конструктора.
@TheGrubian
@TheGrubian 7 жыл бұрын
Ух ты ! Лекция по превращению людей в дерьмо !
@landaumanify
@landaumanify 5 жыл бұрын
как развидеть все это?) что теперь говорить про хб теперь
Алексей Шипилёв - Сжимай меня полностью
55:20
JPoint, Joker и JUG ru
Рет қаралды 13 М.
👨‍🔧📐
00:43
Kan Andrey
Рет қаралды 11 МЛН
The Joker saves Harley Quinn from drowning!#joker  #shorts
00:34
Untitled Joker
Рет қаралды 70 МЛН
Unveiling my winning secret to defeating Maxim!😎| Free Fire Official
00:14
Garena Free Fire Global
Рет қаралды 7 МЛН
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 12 МЛН
Андрей Паньгин - Мифы и факты о медленной Java
58:44
Основы JMM
26:47
AndroidFans
Рет қаралды 1,1 М.
Crust of Rust: async/await
2:34:01
Jon Gjengset
Рет қаралды 189 М.
Многопоточность глазами разработчика
1:36:04
Многопоточность в Java: основы
1:23:05
Computer Science Center
Рет қаралды 111 М.
👨‍🔧📐
00:43
Kan Andrey
Рет қаралды 11 МЛН