Pull to refresh
117
0
Сергей Дегтярев @degs

User

Send message

Блестяще и действительно не скучно. Я раньше дfже не подозревал что в sed есть модификатор /e

Вроде все правильно написано, но с другой стороны зачем? Классическая книга Ричарда Стивенса, изданная в 1994 году, покрывает эти и еще многие другие случаи гораздо подробнее и с детальным анализом tcpdump. Да она и написана интереснее на мой вкус.
Я надеялся увидеть обзор новых фишек TCP, которых с тех пор появилось множество и которые нигде систематически не описаны, но увы...

Ссылки интерсные, спасибо. Отпишусь когда прочитаю.

А не посмотрите реализацию std::experimental::atomic_shared_ptr?

Ну, если то что я вижу это апдейтнутая версия, то там ничего нового не добавлено, просто враппер вокруг стандартных std::atomic_… свободных функций. Пока больше похоже на заготовку на будущее.

Естественно я рассматривал случай weak_ptr, в пост добавлять не стал чтобы не загромождать ненужными деталями. Валится точно так же, и механизм тот же, даже lock() не требуется. Вообще-то могли бы и проверить перед тем как постить.


void read_data() {
    for(;;)
        std::weak_ptr<int> sp=data;
}

int main()
{
    std::thread(read_data).detach();
    for(;;)
        data=std::make_shared<int>(0);
    return 0;
}

кстати, "стоковым на Java" сейчас по слухам вообще никто не занимается

пинганул, сейчас он напишет

М-да? А если будет придуман новый алгоритм, лучший во всех отношениях, и в расте он не появится? Это хорошо или наоборот плохо?

Согласен, я в общем и пытался продемонстрировать что имеется ввиду в этом утверждении.
Но, кстати, ваша формулировка тоже неоднозначна, что значит "могут безопасно указывать"?

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

compare_swap был и остается единственным условным атомарным оператором, без него вам ни одого нетривиального алгоритма не создать. Да, он сразу же переводит алгоритм в класс waiting, но как правило это не фатально, те же виртуальные функции вовсю используются в реализации.
Вообще, я препочитаю стандарты не обсуждать а понимать. В часности при создании std::shared_ptr был выбран очевидный баланс между тяжеловесностью реализации и универсальностью.

Ну наверное вы в чем-то правы, но вообще пост не о lock-free — просто попытка разобраться из любопытства что именно мешает std::shared_ptr<> быть thread safe. Тема неблокирующих алгоритмов возникает фактически только потому что атомарные операции там уже присутствуют при работе со счетчиком.

Спасибо за настоятельную рекомендацию, только что вас заставляет думать что я ее не читал?
И, да, мне действительно было интересно и полезно, но уже довольно давно, поскольку книга вышла в 2012

Постановку задачи я в самом начале описал, и проблема вполне реальная. Я уже измерял когда-то, каждая блокировка на мьютексе занимает 40 микросекунд. Вот в тех нечастых случаях когда это время критично и требуются неблокирующие алгоритмы.

В новом это в котором? Это не вот это?: /usr/include/c++/5.4.0/bits/shared_ptr_atomic.h
Но он к сожалкнию блокирующий, маленькое лукавство — atomic не обязательно подразумевает non blocking.

Сьерра-Невада это горы, совсем другой климат чем в равнинной Калифорнии, там достаточно высоко, прохладно и высокая влажность из-за океанских муссонов, ни разу не пустыня. Там растут в основном хвойные породы — сосна, ель и уникальная секвойя. Вот на восточных склонах, которые к Неваде обращены — там да, песок, камень и кактусы.

Извините конечно, но это бред сивой кобылы в стиле самых укуренных алармистов.


  • а прикинули вклад коровьего метана в глобальное потепление? Он очевидно исчезающе мал. Давайте кстати и слонов истребим, они большие и тоже наверное вкладывают.
  • а сравнили с ущербом экологии если вдруг линия побережья начнет массово использоваться под водорослевые плантации? учесть надо все — от массового вымирания местных видов из-за изменения пищевого баланса до изменения береговой линии из-за активных строительных работ
  • а подумали почему именно Греция и Исландия? Да там как раз трава-то и не особенно растет. От голода это все, а не от великой исландской мудрости
  • а оценили влияние на экономику и фермерские хозяйства? Если сейчас мелкие фермеры сами заготовляют сено или покупают у соседей и работают почти по замкнутому циклу, то теперь им придется встроиться в длинную промышленную цепочку. Боюсь что на небольших хозяйствах это скажется фатально.
  • а так обожаемые экологистами свободно пасущиеся коровы? После перехода на покупные водоросли нет никакого резона пускать их гулять, пусть всю жизнь в стойле стоят
  • а какой-такой состав у этих водорослей? Там наверняка полно всяких морских микроэлементов, они в малых дозах очевидно полезны, но если практически ими одними питаться? Недавно здесь же аргументированно писали что интенсивное удобрение навозом может привести к отравлению нитратами, здесь состав еще более экзотический.
  • а если тому же экологисту сказать что теперь его будут поить молоком с бромоформом? Подозреваю что вилы потом придется из задницы долго выковыривать
  • а вообще, долговременные последствия кормления коров водорослями кто-то проверял? А вы знаете что первые случаи массового отравления молоком наблюдались в США и Канаде после перехода на кормление дешевым жмыхом сахарного тростника (привет сухому закону). Коровы говорят тоже жили крайне недолго, но все окупалось за счет дешевизны корма (привет резкому изменению отраслевой экономики)

В общем как хотите, а я патентую торговый лэйбл "Без бромоформа", наверняка будет очень популярен.

Ага, точно. Называется "использование внутренней жабы в мирных целях". Процентов нв 40 я тоже на этом вылез, а главное — сейчас очень помогает в моменты искушений.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity