Дочитал второе издание "C++ Concurrency in Action", очень понравилось и всецело рекомендую! Хотя стиль Вильямса мне не очень нравится, но материал очень интересный и полезный, учитывающий нововведения в C++17/20 а так же Concurrency TS (слегка). Электронная версия доступна тут.
Здравствуйте, SkyDance, Вы писали:
R>>а тем кто желает освоить мир конкуренси лучше почитать scrutator.me за 12 год
SD>А еще лучше — написать что-нибудь на Erlang, тогда глаза откроются на самом деле. Ну, не сразу, но через год-два...
У равнения на Erlang есть, как минимум, две проблемы: Erlang демонстрирует лишь один подход к решению проблем конкурентного программирования. В двух словах это можно назвать творчески переработанной Моделью Акторов (за счет selective receive процессы в Erlang-е обладают специфическим свойством, которого нет у классических Акторов). К сожалению, не всегда Модель Акторов подходит под задачу. Поэтому не менее полезно, например, написать что-нибудь и на языке Go, глаза раскроются еще шире. Еще шире глаза раскроются при знакомстве с data-flow подходом. Ну и это еще не предел...
C++ небезопасный язык, поэтому при реализации Акторов на C++ не получается просто так использовать один из главных принципов, лежащих в основе Erlang-а: let it crush.
До кучи можно добавить еще и тот факт, что в Erlang-е своя VM и свой планировщик, реализующий вытесняющую многозадачность для Erlang-овых процессов. Но в C++ разработчик не имеет такой роскоши, поэтому в C++ приходится:
пользоваться нитями ОС дабы получить вытесняющую многозадачность. Тогда внутри каждой нити получается "простой" последовательный код. Но нельзя создавать десятки и сотни тысяч нитей (тогда как в Erlang-е можно создавать Erlang-овые процессы в таких количествах);
либо пользоваться объектами с коллбэками, которые реагируют на входящие сообщения. И тогда "простой" последовательный код может превратиться в непростую асинхронную лапшу;
либо пользоваться stackful короутинами, код в которых будет "простым" и последовательным, и которых можно создать в больших количествах. Но с необходимостью обеспечивать им диспетчеризацию.
Так что знакомство с Erlang-ом, в принципе, полезно. Но при разработке на C++ есть своя специфика, которая не позволит вам переиспользовать подходы из Erlang-а в чистом виде. Впрочем, для тех, кто хочет писать на Erlang-е на C++ есть CAF.
Здравствуйте, SkyDance, Вы писали:
SD>По этой, а также многим другим причинам, C++ — не лучший выбор для реализации massive concurrency.
Это тормозоной Erlang-то лучший выбор для massive concurrency?
SD>
SD>Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.
Унылое подражание классике. Впрочем, когда приходится пользоваться таким унылым языком, как Erlang, остается развлекать себя подобными сентенциями.
не рекомендую тем кто хочет научится конкуренси
книга скорее как справочник стд по конкуренси
а тем кто желает освоить мир конкуренси лучше почитать scrutator.me за 12 год
R>не рекомендую тем кто хочет научится конкуренси R>книга скорее как справочник стд по конкуренси R>а тем кто желает освоить мир конкуренси лучше почитать scrutator.me за 12 год
Извини, но я не понимаю как ты сравниваешь обычный бложик с книгой такого уровня. Я бы еще понял, дай ты линку хотя бы на preshing.com, но вот этот scrutator... ну заметки на коленке и что?
Здравствуйте, SkyDance, Вы писали:
SD>А еще лучше — написать что-нибудь на Erlang, тогда глаза откроются на самом деле. Ну, не сразу, но через год-два...
Невероятно полезный комментарий в теме про книгу о C++ находящуюся в разделе посвященном опять таки C++
тема сисек в книге не раскрыта
как я уже сказал, не более чем справочник конкуренси из текущего стандарта
да еще и примеры все с en.cppreference.com
и если хотите поддержать вильямса — покупайте
тем же кто желает освоить конкуренси, в частности его одну из сложных разделов lockfree программирование
рекомендую тот незатейлевый как вы выразились бложик
лучшего материала не встречал
там много статей по этой теме
Здравствуйте, SkyDance, Вы писали:
SD>А еще лучше — написать что-нибудь на Erlang, тогда глаза откроются на самом деле. Ну, не сразу, но через год-два...
Писал на erlang'е пол-года, но глаза не открылись, видимо действительно надо не меньше года
S> Поэтому не менее полезно, например, написать что-нибудь и на языке Go, глаза раскроются еще шире. Еще шире глаза раскроются при знакомстве с data-flow подходом. Ну и это еще не предел...
Согласен, для широты кругозора следует изучить и перечисленое выше. И тоже в размере года-другого, потому что первоначальное знакомство, honeymoon period и все прочее. Послевкусие раскрывается только через оные год-два.
S>C++ небезопасный язык, поэтому при реализации Акторов на C++ не получается просто так использовать один из главных принципов, лежащих в основе Erlang-а: let it crush.
crash, все-таки.
По этой, а также многим другим причинам, C++ — не лучший выбор для реализации massive concurrency. Равно как ассемблер не очень подходит для написания запросов к базам данных.
S>До кучи можно добавить еще и тот факт, что в Erlang-е своя VM и свой планировщик, реализующий вытесняющую многозадачность для Erlang-овых процессов. Но в C++ разработчик не имеет такой роскоши
Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.
Здравствуйте, kaa.python, Вы писали:
KP>Дочитал второе издание "C++ Concurrency in Action", очень понравилось и всецело рекомендую! Хотя стиль Вильямса мне не очень нравится, но материал очень интересный и полезный, учитывающий нововведения в C++17/20 а так же Concurrency TS (слегка). Электронная версия доступна тут.
Книжка ещё не вышла, пока только MEAP. Что там нового по сравнению с первым изданием?
Здравствуйте, kaa.python, Вы писали:
KP>Дочитал второе издание "C++ Concurrency in Action", очень понравилось и всецело рекомендую!
Есть кстати еще такая книжка — Concurrency with Modern C++ https://leanpub.com/concurrencywithmodernc
Кто-нибудь про неё что-нибудь знает? Никто не читал? Судя по оглавлению вроде выглядит неплохо
Здравствуйте, uncommon, Вы писали:
U>Книжка ещё не вышла, пока только MEAP. Что там нового по сравнению с первым изданием?
Начал читать, новое есть, то же Concurency TS (примеры с 4.17 по 4.27). Ну и всякое по-мелочи. Я первую часть раньше не читал, сейчас начал, скачал примеры и понял, что во втором побольше материала. Начал перечитывать второе издание.