Александр Ланцов - Не happens-before единым: нестандартные семантики

  Рет қаралды 8,240

JPoint, Joker и JUG ru

JPoint, Joker и JUG ru

9 ай бұрын

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
Реклама. Публичное акционерное общество «Сбербанк России», 2RanykF1Hix
- -
Несмотря на то, что новые режимы упорядочивания доступов к памяти стали доступны еще с выходом JDK 9, немногие разработчики знакомы с ними. Хотя эти семантики все еще не имеют формального описания в модели памяти Java, они широко используются в популярных многопоточных библиотеках: JCTools, Disruptor, Agrona, Aeron и многих других. Поэтому для изучения исходного кода этих проектов нужно понимать существующие режимы упорядочивания.
Но даже для исключительно прикладных разработчиков-пользователей этих библиотек понимание свойств этих режимов позволяет осознанно подходить к выбору используемой реализации многопоточных структур данных. И все это может увеличить производительность всей системы.
В докладе последовательно рассматриваются все доступные на данный момент режимы: plain, opaque, release-acquire, volatile. Для каждого показаны его высокоуровневые свойства и примеры использования.
Доклад будет интересен всем, кто интересуется многопоточным программированием, моделями памяти и популярными lock-free библиотеками.
Презентация к докладу: squidex.jugru.team/api/assets...
#java #performance

Пікірлер: 24
@MegaAnufriev
@MegaAnufriev 9 ай бұрын
Замечательный доклад! Все очень кратко и понятно соблюдая строгие гарантии подачи и восприятия данного материала.
@FIDELINA
@FIDELINA 9 ай бұрын
Отличный доклад, Саша) Приятно видеть тебя спикером)
@avpmk
@avpmk 7 ай бұрын
Мегакрутой чувак!!! Хочу ещё 20 его двухчасовых лекций. Очень просто и доступно, учись, Шипилёв, как надо!
@avishnevski1980
@avishnevski1980 9 ай бұрын
Отличный доклад, можно даже начинающим показывать. Редко такое на конфах увидишь
@RickDkkrd
@RickDkkrd 8 ай бұрын
Очень круто, и по содержанию, и по презентации. Все четко, без воды и с примерами. Жги еще.
@bananasba
@bananasba 9 ай бұрын
Очень доступное изложение, без нюансов конечно, но стоит посмотреть
@RexerNotes
@RexerNotes 9 ай бұрын
Превосходный доклад!
@user-fg6ng7ej6w
@user-fg6ng7ej6w 9 ай бұрын
крутой доклад. Вспоминаем времена Шипилёва
@errandir
@errandir 8 ай бұрын
Спасибо! Интересный доклад и хорошая подача.
@alexandersmirnov4274
@alexandersmirnov4274 4 ай бұрын
да последний пример про панду и котика просто шедеврально
@Alexander-mj3jk
@Alexander-mj3jk 26 күн бұрын
нехрен с релятивистскими скоростями бегать :)))
@trashds
@trashds 8 ай бұрын
Шикарный доклад!
@Dominic_Herzog
@Dominic_Herzog 8 ай бұрын
Крутой доклад, спасибо!
@user-gh7pz7ut7l
@user-gh7pz7ut7l 8 ай бұрын
Доклад огонь!
@eduardgizatullin8075
@eduardgizatullin8075 5 ай бұрын
Cool presentation, thank you for that anr shared benchmark
@learning867
@learning867 9 ай бұрын
Причинность это и есть HB...
@nikitanovosad9937
@nikitanovosad9937 9 ай бұрын
есть тут те, кто использует эти семантики в продакшн коде?)
@stokitko
@stokitko 9 ай бұрын
Нет, но теперь на собесах будут новые дебильные вопросы
@user-dd6ie1ol5s
@user-dd6ie1ol5s 9 ай бұрын
Как раз на работе соседняя команда разрабатывает библиотечку для кастомных очередей с замороченной логикой. Там используется AtomicBoolean переменная как флажок останова всего механизма очереди. Там как раз применяется связка методов .setRelease(true), .getAcquire(). До этого доклада лазил по SO тредам и каким-то старым статьям по Java Memory Model - нифига не понял, только мозг опух. Здесь в этом докладе хотя бы что-то более менее встало на свои места, реально крутой бодрый докладик. Спикеру, оргам спасибо, респект.
@JavaAverageBadCoder
@JavaAverageBadCoder 3 ай бұрын
Да, есть вархендлы на проде
@nikitanovosad9937
@nikitanovosad9937 3 ай бұрын
@@JavaAverageBadCoder расскажите, что это за сервис, в котором была нужда использовать вархендлы?
@JavaAverageBadCoder
@JavaAverageBadCoder 2 ай бұрын
@@nikitanovosad9937 с метриками связано(+ лютый дроч на производительность кода), что конкретно в проекте это решает я не знаю, я слабоват для понимания что там и зачем, опытные коллеги делали. Просто видел что используется
@energy7786
@energy7786 7 ай бұрын
Напишу, что крутой доклад, пусть остальные думают, что я все понял и умнее их 😂 Upd. А если серьёзно, то видимо мало кто понял, так как комментариев меньше 0.5 процента от просмотров
@user-md2fk3jj1e
@user-md2fk3jj1e 3 ай бұрын
кто захотел тот понял ;) единственное, что автор мог доразжевать, что тк в примере с пандой и котом только одна переменная в каждом потоке, то фактическое поведение равноценно даже opaque семантике (на мой взгляд). В общем opaque не дает ничего, acq-rel упорядоченность записи внутри одного потока, volatile упорядоченность записи на уровне всех потоков
How many pencils can hold me up?
00:40
A4
Рет қаралды 19 МЛН
Eccentric clown jack #short #angel #clown
00:33
Super Beauty team
Рет қаралды 28 МЛН
CAN YOU HELP ME? (ROAD TO 100 MLN!) #shorts
00:26
PANDA BOI
Рет қаралды 36 МЛН
Максим Морев - DDD в действии
51:54
JPoint, Joker и JUG ru
Рет қаралды 9 М.
Роман Таранов (Сбер) - Темная сторона Java
30:35
JPoint, Joker и JUG ru
Рет қаралды 5 М.
Эффект Карбонаро и бумажный телефон
1:01
История одного вокалиста
Рет қаралды 2,7 МЛН
Mi primera placa con dios
0:12
Eyal mewing
Рет қаралды 531 М.
wyłącznik
0:50
Panele Fotowoltaiczne
Рет қаралды 24 МЛН