Size: a a a

2020 April 08

P

Pavel in rust_offtopic
Alex Zhukovsky
ну так и было бы

a();
b();
тоесть b()  ждал бы завершения a() без await, а с await b() ждёт заавершения a(). Понял тебя. Действительно, асинхронное
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
тоесть b()  ждал бы завершения a() без await, а с await b() ждёт заавершения a(). Понял тебя. Действительно, асинхронное
пропущено "не" в начале
источник

P

Pavel in rust_offtopic
Егор Савельев
var a = await a();
var b = await b();
var c = await c();
А без этого слова:
a.Then(a =>
 b.Then(b =>
   c.Then(c => ())
 )
);
тоесть await ожидает завершения async таски, а если таска спавнится и сразу же ожидается, то она равноценна синхронному выполнению, верно?
источник

ЕС

Егор Савельев... in rust_offtopic
Pavel
тоесть await ожидает завершения async таски, а если таска спавнится и сразу же ожидается, то она равноценна синхронному выполнению, верно?
Конкретно на этом примере - да. Если же ранее кто-то создал ещё одну таску, то эти таски будут работать паралельно.
источник

AZ

Alex Zhukovsky in rust_offtopic
авейт как следует из названия означает "асинхронно дождись выполнения ио"
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
авейт как следует из названия означает "асинхронно дождись выполнения ио"
и если ты начинаешь ио и сразу его ждёшь, то это называется синхронным, или блокирующим IO.
источник

P

Pavel in rust_offtopic
впротивовес асинхронному, который ты не ждёшь прям сейчас
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
и если ты начинаешь ио и сразу его ждёшь, то это называется синхронным, или блокирующим IO.
нет
источник

P

Pavel in rust_offtopic
что именно из того, что я написал — "нет"
источник

ЕС

Егор Савельев... in rust_offtopic
Pavel
и если ты начинаешь ио и сразу его ждёшь, то это называется синхронным, или блокирующим IO.
Блокирующим ио называют ио которое блокирует поток, await же не блокирует поток.
источник

AZ

Alex Zhukovsky in rust_offtopic
всё. МОжно на одном треде авейтить 100 тасок
источник

AZ

Alex Zhukovsky in rust_offtopic
и они параллельно выполнятся
источник

AZ

Alex Zhukovsky in rust_offtopic
короч разберись в теме плз, я щас спать иду и у меня не получится в 4 минуты объяснить всё сильно подробнее
источник

AZ

Alex Zhukovsky in rust_offtopic
возьми раст, возми single_thread реактор, попробуй поиграться с асинк-авейт
источник

AZ

Alex Zhukovsky in rust_offtopic
https://blog.stephencleary.com/2013/11/there-is-no-thread.html возможно эта статья поможет
источник

P

Pavel in rust_offtopic
Егор Савельев
Блокирующим ио называют ио которое блокирует поток, await же не блокирует поток.
да как же не блокирует, если у тебя ход программы останавливается и код ниже авейта не начинает исполняться
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
да как же не блокирует, если у тебя ход программы останавливается и код ниже авейта не начинает исполняться
этот поток начинает ывполнять другой код
источник

AZ

Alex Zhukovsky in rust_offtopic
Егор Савельев
Блокирующим ио называют ио которое блокирует поток, await же не блокирует поток.
глянь ссылку что я скинул, может быть интересно
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
этот поток начинает ывполнять другой код
нет, ты говоришь про воркер-поток, который выполняет инструкции, а я тебе говорю про останов хода выполнения, у тебя текущий код, на который ты смотришь, дальше не идёт.
источник

ЕС

Егор Савельев... in rust_offtopic
Pavel
да как же не блокирует, если у тебя ход программы останавливается и код ниже авейта не начинает исполняться
Останавливается только твоя таска, из которой произошел await. Таска необязательно занимает целый поток.
источник