Здравствуйте! Подскажите пожалуйста авторитетные источники по многопоточности в веб приложениях. Искал в сети, только статьи и те не многословные. Спасибо.
А чем "многопоточность в вебе" отличается от простой многопоточности?
Василий Банников, если говорить про браузеры, то там реально не хватает примитивов расшаривания/синхронизации данных между потоками, объекты передаются только через глубокое копирование, при этом часть вещей так передать вообще нельзя. Некоторые штуки правда можно мувнуть в другой поток, а не копировать, но таких штук не так уж и много.
Из общей памяти по сути только SharedArrayBuffer, в котором сырые байты, а из примитивов синхронизации - только атомики поверх SharedArrayBuffer, притом только с sequentially-consistent memory ordering.
Хотя когда завезут многопоточку в wasm возможно дела с этим будут получше
У многопоточности нет нюансов для веба. Про многопоточность нужно читать в разрезе конкретного железа, операционной системы, языка программирования и библиотеки/фреймворка.
Wsearch, вряд ли вы меня поняли, раз так и не озвучили контекст, в котором вас интересует многоточность. У многопточности например в Java и многопоточности Erlang нет ничего общего, в Python многопоточность ограниченная, а в JavaScript её вообще нет. И даже если брать только Java, работа с многопоточностью например в Spring MVC и Spring WebFlux тоже очень разная.
Сергей Горностаев, я Вас понял. Если рассматривать в рамках языка, то интересует golang. Но опять же сам язык то простой, а вот про вопросы многопоточности я знаю мало, поэтому решил для себя вначале с ней разобраться в общих чертах.
Wsearch, для базовых знаний в этой области подойдёт любой учебник по Go, В частности у Донована и Кернигана половина книги посвящена вопросам конкурентности. Чего-то более глубокого не посоветую, так как не специалист в Go.