C++ lock-free контейнеры

Discussion in 'LANGS.C' started by im., Apr 20, 2019.

  1. im.

    im. Active Member

    Blog Posts:
    0
    Joined:
    Sep 16, 2017
    Messages:
    310
    От hh.ru пришла подборка новостей, там в одном крупном облачном проекте требуются навыки разработки lock-free контейнеров. Знаком с этим мало, поэтому стало интересно, посмотрел тему lock-free контейнеров, но толком не увидел завершенных вариантов предлагаемых решений. Одна из статей обещала написание примера такого контейнера, вроде как все и интересно, но заканчивалась тем, что мол все круто, правда тут есть утечка памяти и это решать не будем, т.к. нужен сборщик мусора, а его писать надо отдельно, лоооооол.

    Я всегда считал это экперементальными разработками, ибо будь возможность стабильной реализации, оно бы уже появилось хоть в каком-то виде и применялось. Даже в boost скудно это все представлено и имеет проблемы практического применения.

    Кто с этой кухней знаком? Делитесь информацией. Есть опыт применения? Успешно?
     
  2. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Например какие?
     
  3. im.

    im. Active Member

    Blog Posts:
    0
    Joined:
    Sep 16, 2017
    Messages:
    310
  4. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
    Двойная проверка и битовая карта решает все проблемы. Разве что количество потоков придётся ограничить. Либо принудительно привязать к ядрам.
     
  5. sn0w

    sn0w Active Member

    Blog Posts:
    0
    Joined:
    Feb 27, 2010
    Messages:
    958
    нене , лучше свооппинг , тогда хоть одно и з ядер будет исполнять
     
  6. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317


    --- Сообщение объединено, May 8, 2019 ---
    тоже самое от Херба Саттера, если вдруг тут есть его фанаты: