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

Ғылым және технология

Ближайшая конференция - 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
    @MegaAnufriev9 ай бұрын

    Замечательный доклад! Все очень кратко и понятно соблюдая строгие гарантии подачи и восприятия данного материала.

  • @avpmk
    @avpmk7 ай бұрын

    Мегакрутой чувак!!! Хочу ещё 20 его двухчасовых лекций. Очень просто и доступно, учись, Шипилёв, как надо!

  • @FIDELINA
    @FIDELINA9 ай бұрын

    Отличный доклад, Саша) Приятно видеть тебя спикером)

  • @avishnevski1980
    @avishnevski19809 ай бұрын

    Отличный доклад, можно даже начинающим показывать. Редко такое на конфах увидишь

  • @RexerNotes
    @RexerNotes9 ай бұрын

    Превосходный доклад!

  • @RickDkkrd
    @RickDkkrd9 ай бұрын

    Очень круто, и по содержанию, и по презентации. Все четко, без воды и с примерами. Жги еще.

  • @bananasba
    @bananasba9 ай бұрын

    Очень доступное изложение, без нюансов конечно, но стоит посмотреть

  • @user-fg6ng7ej6w
    @user-fg6ng7ej6w9 ай бұрын

    крутой доклад. Вспоминаем времена Шипилёва

  • @errandir
    @errandir8 ай бұрын

    Спасибо! Интересный доклад и хорошая подача.

  • @trashds
    @trashds9 ай бұрын

    Шикарный доклад!

  • @alexandersmirnov4274
    @alexandersmirnov42744 ай бұрын

    да последний пример про панду и котика просто шедеврально

  • @Alexander-mj3jk

    @Alexander-mj3jk

    Ай бұрын

    нехрен с релятивистскими скоростями бегать :)))

  • @Dominic_Herzog
    @Dominic_Herzog9 ай бұрын

    Крутой доклад, спасибо!

  • @user-gh7pz7ut7l
    @user-gh7pz7ut7l9 ай бұрын

    Доклад огонь!

  • @eduardgizatullin8075
    @eduardgizatullin80755 ай бұрын

    Cool presentation, thank you for that anr shared benchmark

  • @learning867
    @learning8679 ай бұрын

    Причинность это и есть HB...

  • @nikitanovosad9937
    @nikitanovosad99379 ай бұрын

    есть тут те, кто использует эти семантики в продакшн коде?)

  • @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

    3 ай бұрын

    @@nikitanovosad9937 с метриками связано(+ лютый дроч на производительность кода), что конкретно в проекте это решает я не знаю, я слабоват для понимания что там и зачем, опытные коллеги делали. Просто видел что используется

  • @energy7786
    @energy77867 ай бұрын

    Напишу, что крутой доклад, пусть остальные думают, что я все понял и умнее их 😂 Upd. А если серьёзно, то видимо мало кто понял, так как комментариев меньше 0.5 процента от просмотров

  • @user-md2fk3jj1e

    @user-md2fk3jj1e

    3 ай бұрын

    кто захотел тот понял ;) единственное, что автор мог доразжевать, что тк в примере с пандой и котом только одна переменная в каждом потоке, то фактическое поведение равноценно даже opaque семантике (на мой взгляд). В общем opaque не дает ничего, acq-rel упорядоченность записи внутри одного потока, volatile упорядоченность записи на уровне всех потоков

Келесі