Пол года учу Java, но просмотр этого контента ввергло меня в состояние плоского червя........
@elenazelenaya67834 жыл бұрын
Да, мозги чуток поплавились. Но начинаешь всё понимать совсем скоро. Что бы понять полностью, надо пересмотреть, мне кажется)) Плюс, 25 кадр повлияет конкретнее) Спасибо большое)
@waffleboot7 жыл бұрын
Хороший доклад! Чую что теперь собеседования надо проводить так: - Знаешь про барьеры памяти? - Нет - Принят Чую что следующий доклад должен быть про гонки, потому что раньше было понятно что это такое, а сейчас какое-то переосмысление понадобится, такое ощущение что эти "красные race" откуда-то из ниоткуда берутся и в общем-то говорят о том, что прочитать можете все что угодно. Потому что если насчет PO,SO,SW,HB ребер еще можно понять, то откуда вспыхивает RACE ребро как-то мало понятно, особенно в контексте формализма модели. Еще интересно, warning на "двойные чтение" есть в IDE? И опять же с PO непонятки, я так понимаю он охватывает actions только внутри одного потока (тогда PO-ов несколько), а inter-thread relations уже задаются через SO (ну и SW,HB как более развитые ребра), просто SO накладываются на PO, только вроде PO из разных потоков, т.е. как бы SO выстраивает некий глобальный (тотальный?) PO всей многопоточной программы (просто термин Program как-то не ясен, то ли речь про поток, то ли про всю многопоточную программу идет речь).
@alexsyrotenko9981 Жыл бұрын
Ну туда, куда я собесился, только про модели памяти и конкарренси были вопросы.
@Goodloot7 жыл бұрын
Судя по всему на слайде с барьерами IRIW опечатка, JMM запрещено выполнение (1,0,1,0)
@landaumanify5 жыл бұрын
в слайдах тоже поправлено. 10 минут пытался понять что со мной не так)
@deckardlundgren14383 жыл бұрын
Крутяяк! Повезло нам с Алексеем!
@ЕкатеринаКригер-ы9вАй бұрын
госпади. спасибо что я обычный веб-разраб где нет никакой многопоточки я смотрю на это с ужасом, просто готовясь к собесу.. лучше бы этого всего не знала вообще
@TaranovskiAlex7 жыл бұрын
офигительный доклад, спасибо!
@PaulEfremoff Жыл бұрын
35:00 В какой вселенной val!=null, а потом val==null? Из какого места вытащено null?
@oleksandrsankin96375 жыл бұрын
Очень классная лекция!
@khvastov.maksym Жыл бұрын
30:05 "Приколись! От JMM мозги спеклись!" Один из любимых докладов.
@oxotAzapivom7 жыл бұрын
Цепочка на 28:46 Когда идет разбор предыдущей цепочки локов мы видим что идет запись в V, после которой идет запись в Supp Далее мы продолжаем наш случай, котором имеет место ТОЛЬКО ЕСЛИ Supp !E Исход один, но это законно вообще? Либо я не понял
@andreyzubkov6293 жыл бұрын
Я правильно понимаю, что на слайде (34:47) в строке if (val != null) { есть опечатка в булевой операции и нужно: if (val == null) { ? Спасибо
@VADemon3 жыл бұрын
Судя по всему - да, в слайдах вложенный if заменен на троеточия.
@Чувак-с9б Жыл бұрын
Хоть бы объяснил, что за StoreStore, LoadStore, StoreLoad он пишет в квадратных скобках, параллельно коду. Конечно, софт-навыки при приеме на работу важны. Но это все же лекция. И смысл лекции - предоставить информацию, понятную людям.
@ВасяВ-ь5м7 жыл бұрын
kzbin.info/www/bejne/eWfFkJd8qdqdgdE и kzbin.info/www/bejne/eWfFkJd8qdqdgdE опечатка, вместо val=supp.get(); надо v=val=supp.get(); иначе мы не увидим инициализированное значение..
@omnesio3 жыл бұрын
Блин, интересно пздц. Только нихрена не понятно )))
@masyaman6 жыл бұрын
Последний пример не ясен. Почему if (supp == EMPTY) можно, а if (supp == null) нельзя? Если я правильно понял, то из-за того, что supp может быть null из-за того, что при инициализиции Lazy он не был final. А если supp будет null в первом случае, то тогда будет NPE на supp.get()?
@fedoresko Жыл бұрын
Нет, get внутри synchronized, что дает HP, там будет значение из конструктора.
@TheGrubian7 жыл бұрын
Ух ты ! Лекция по превращению людей в дерьмо !
@landaumanify5 жыл бұрын
как развидеть все это?) что теперь говорить про хб теперь
@razmus89dragovich204 жыл бұрын
довольно запутана JMM на первый взгляд, на второй гораздо лучше :)