параллель? Чтобы не писать map { launch{} }.forEach{it.join()}
Если ты это делаешь на JVM, то вероятно хорошо пойдет Stream.parallel. Если ты это делашь на JS, то у тебя ничего не получится
Я бы покопал в сторону https://arrow-kt.io/docs/fx/async/#racen
Это даже не микроскопом гвозди, а прям синхрофазотроном
Если там внутри suspend, остаётся только велосипедить 😞
Ну у него по-моему там не suspend, но если суспенд, то вот строчка выше все делает
Про JS зря вы, те же сетевые запросы, насколько мне помнится, отлично параллелятся, к примеру.
Конкретно выделенное не очень хорошо, ибо оно результат только одного ждёт. Там есть более подходящие вещи, но с Arrow немного неудобно, что он навязывает некоторые не особо общепринятые практики (пример - помечать suspend'ом все функции с сайд-эффектами, даже если там нечего саспендить)
Нет, там без воркера нельзя ничего распаралелить. А воркет - это вообще отдельная песня
Ну так если JS-код делает несколько сетевых запросов, и каждый из них await-ит, то самому браузеру ничего не мешает на самом деле выполнить их параллельно. Обработка результатов дальше джиэсом, конечно, снова будет однопоточная.
То есть вы хотите сказать, что там хак стоит в интерпретаторе? Чего-то я сомневаюсь.
Я думаю, речь идет об асинхронности, а не о паралллельности.
Может быть, и так, конечно, но на входе было "параллель" :)
Под параллельным выполнением подразумевается то, что больше, чем одно ядро грузит. Вполне может быть, что там есть специальный хак для какого-нибудь fetch, но уж точно в языке к этому доступа нет
Зачем хак в интерпретаторе? HTTP-запросы из браузера -- обращение к платформе, сам код, менеджащий их, в браузере не на джиэсе сделан. Потому на него ограничения V8 и аналогов не распространяется.
Да, у этой практики есть обоснование
Ну это может быть. Хотя, передать раздельные колбэки в параллельный код на сишечки - это я слабо себе представляю, как сделать
Ну: а) Я не готов сказать, что это сколько либо хорошее обоснование. б) Персонально я бы хотел видеть Arrow как либу (т.е. то, что можно прикрутить сбоку, хоть в одном месте), не как фреймворк (то, что навязывает какой-то собственный стиль) Т.е. я бы скорее намного больше рад был дополнительному "ключевому слову" (условно как @Composable в compose), чем переиспользованию существующего.
А разве не планируют к этому прийти?
Так может и придут, только код стайл насчёт того, что "размечать саспендом всё, что имеет сайд-эффекты" есть уже сейчас.
Ну что поделать, на втором пайтоне тоже до сих пор много всего написано. 😁
почему синхрофазотрон?
Точка?
ну это ответ ещё и на это сообщение
Обсуждают сегодня