169 похожих чатов

Есть сахар для запуска сразу многих задач на корутинах в

параллель? Чтобы не писать map { launch{} }.forEach{it.join()}

24 ответов

13 просмотров

Если ты это делаешь на JVM, то вероятно хорошо пойдет Stream.parallel. Если ты это делашь на JS, то у тебя ничего не получится

Я бы покопал в сторону https://arrow-kt.io/docs/fx/async/#racen

Vladyslav Kopaniev
Я бы покопал в сторону https://arrow-kt.io/docs/fx...

Это даже не микроскопом гвозди, а прям синхрофазотроном

Alexander Nozik
Если ты это делаешь на JVM, то вероятно хорошо пой...

Если там внутри suspend, остаётся только велосипедить 😞

Vladimir Petraković
Если там внутри suspend, остаётся только велосипед...

Ну у него по-моему там не suspend, но если суспенд, то вот строчка выше все делает

Alexander Nozik
Если ты это делаешь на JVM, то вероятно хорошо пой...

Про JS зря вы, те же сетевые запросы, насколько мне помнится, отлично параллелятся, к примеру.

Vladyslav Kopaniev
Я бы покопал в сторону https://arrow-kt.io/docs/fx...

Конкретно выделенное не очень хорошо, ибо оно результат только одного ждёт. Там есть более подходящие вещи, но с Arrow немного неудобно, что он навязывает некоторые не особо общепринятые практики (пример - помечать suspend'ом все функции с сайд-эффектами, даже если там нечего саспендить)

Andrew Mikhaylov
Про JS зря вы, те же сетевые запросы, насколько мн...

Нет, там без воркера нельзя ничего распаралелить. А воркет - это вообще отдельная песня

Alexander Nozik
Нет, там без воркера нельзя ничего распаралелить. ...

Ну так если JS-код делает несколько сетевых запросов, и каждый из них await-ит, то самому браузеру ничего не мешает на самом деле выполнить их параллельно. Обработка результатов дальше джиэсом, конечно, снова будет однопоточная.

Andrew Mikhaylov
Ну так если JS-код делает несколько сетевых запрос...

То есть вы хотите сказать, что там хак стоит в интерпретаторе? Чего-то я сомневаюсь.

Andrew Mikhaylov
Ну так если JS-код делает несколько сетевых запрос...

Я думаю, речь идет об асинхронности, а не о паралллельности.

Alexander Nozik
Я думаю, речь идет об асинхронности, а не о паралл...

Может быть, и так, конечно, но на входе было "параллель" :)

Andrew Mikhaylov
Может быть, и так, конечно, но на входе было "пара...

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

Alexander Nozik
То есть вы хотите сказать, что там хак стоит в инт...

Зачем хак в интерпретаторе? HTTP-запросы из браузера -- обращение к платформе, сам код, менеджащий их, в браузере не на джиэсе сделан. Потому на него ограничения V8 и аналогов не распространяется.

Andrew Mikhaylov
Зачем хак в интерпретаторе? HTTP-запросы из браузе...

Ну это может быть. Хотя, передать раздельные колбэки в параллельный код на сишечки - это я слабо себе представляю, как сделать

Vladyslav Kopaniev
Да, у этой практики есть обоснование

Ну: а) Я не готов сказать, что это сколько либо хорошее обоснование. б) Персонально я бы хотел видеть Arrow как либу (т.е. то, что можно прикрутить сбоку, хоть в одном месте), не как фреймворк (то, что навязывает какой-то собственный стиль) Т.е. я бы скорее намного больше рад был дополнительному "ключевому слову" (условно как @Composable в compose), чем переиспользованию существующего.

Andrew Mikhaylov
А разве не планируют к этому прийти?

Так может и придут, только код стайл насчёт того, что "размечать саспендом всё, что имеет сайд-эффекты" есть уже сейчас.

Alex Levin
Так может и придут, только код стайл насчёт того, ...

Ну что поделать, на втором пайтоне тоже до сих пор много всего написано. 😁

.

Lev-Shagalov Автор вопроса
Aλex Sokol
.

Точка?

Lev Shagalov
Точка?

ну это ответ ещё и на это сообщение

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта