Size: a a a

2020 April 08

P

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

AZ

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

AZ

Alex Zhukovsky in rust_offtopic
потому что флоу у тебя в любом случае блочится, он не может продолжится без результата операции же
источник

AZ

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

P

Pavel in rust_offtopic
Alex Zhukovsky
блокирующим ио считается тот который поток блочит, а не флоу
тоесть, если ио просто паркует поток рантайма, и скедулит отдыхающий поток, то оно становится неблокируюищим? так и передам, что в джаве локи и ио, которое считается блокирующим, на самом деле не блокирующее — система ж не зависает
источник

AZ

Alex Zhukovsky in rust_offtopic
короч я вроде все написал. Если у тебя await a; await b это блокирующий флоу, а эквивалентный ему a.then(a => b.then(b => ...)) вдруг нет, то ты где-то чего-то недопонял
источник

AZ

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

AZ

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

AZ

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

AZ

Alex Zhukovsky in rust_offtopic
а для ио все привязано к тредам
источник

AZ

Alex Zhukovsky in rust_offtopic
я спать
источник

AZ

Alex Zhukovsky in rust_offtopic
если кто прочитает, объясните павелу где он ошибается
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
потому что флоу у тебя в любом случае блочится, он не может продолжится без результата операции же
у тебя в флоу "дождаться операции" попадает ", а потом перейти на следующую итерацию цикла"? или у тебя флоу "после каждой этой операции выполнить эту, а потом подождать все"?
источник

P

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

P

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

AZ

Alex Zhukovsky in rust_offtopic
https://stackoverflow.com/a/1241494/2559709 вот самый популярный ответ на SO на тему, можешь поискать в других источниках
источник

AZ

Alex Zhukovsky in rust_offtopic
Well blocking IO means that a given thread cannot do anything more until the IO is fully received (in the case of sockets this wait could be a long time).

Выделение жирным - моё
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
Well blocking IO means that a given thread cannot do anything more until the IO is fully received (in the case of sockets this wait could be a long time).

Выделение жирным - моё
тоесть, у тебя закрывающая скобка цикла, достижение которой переходит на следующую итерацию цикла, не композится через Then с await и цикл выполняется, а не блокируется, просто выход из цикла должен будет дождаться всех await? тогда не вижу проблемы. А если блокируется, то это и есть синхронное ио — поток исполнения стоит и не важно что делает поток воркера.
источник

P

Pavel in rust_offtopic
просто твой код помигрирует между разными воркерами
источник

P

Pavel in rust_offtopic
в простое
источник