Size: a a a

Rust — русскоговорящее сообществo

2020 September 03

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Oleg Andreev
а async/await компилит ровно столько сколько нужно
В Rust — да. За C#/JavaScript/etc. я не уверен. 🤷‍♀️
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
ну мы говорим про сравнение наилучших возможных решений. В идеале - ОС позволяет генерить сколько угодно потоков, а программист может просто указать - хочет он вытеснение или нет, и какой приоритет у каждого
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Vasily Kondratyev
Вроде как раз недавно в Go сделали вытесняющие горутины.
Ага, лет 10 назад. 😉
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Oleg Andreev
ну мы говорим про сравнение наилучших возможных решений. В идеале - ОС позволяет генерить сколько угодно потоков, а программист может просто указать - хочет он вытеснение или нет, и какой приоритет у каждого
а не переписывает все с аннотациями каждые пять строчек где у него асинк, при этом каждый ЯП имеет свои приколы
источник

VK

Vasily Kondratyev in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Ага, лет 10 назад. 😉
Нет, я имел в виду вот это. Впрочем, это офтоп, не будем.
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
вообще типичный сценарий юзер-гринтредов это например

вызов read ():

   попытка нонблокинг read()
   подписка на ресурс + yield шедулеру


здесь нет вытесненич
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
как и в гошке до недавнего времени не было
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Oleg Andreev
ну мы говорим про сравнение наилучших возможных решений. В идеале - ОС позволяет генерить сколько угодно потоков, а программист может просто указать - хочет он вытеснение или нет, и какой приоритет у каждого
Такая идиллия возможна разве что в managed OS типа Inferno. В остальных-то проблемы изоляции памяти, разграничения доступа к ресурсам и прочая жесть с нативным кодом.
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Vasily Kondratyev
Нет, я имел в виду вот это. Впрочем, это офтоп, не будем.
Что-то интересное, нужно посмотреть что именно они под этим подразумевают. 😊
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
там процесс сам себе реалтайм сигнал шлет
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
вот и все вытеснение)
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
а в хендлере уже выбирает какую горутину какой заместить
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
по моему единственное преимущество гринтредов перед асинками это то что надо меньше думать ну и синтаксис единообразный
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
а так стеклес корутины это лучший путь
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
то есть как в расте это норм сделано
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
но если есть монады и ду синтакс то эта проблема отпадает - можно использовать явные континуации
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Andrew Demonov
Он уже научился навигироваться между зависимостями?
Типа перейти к исходному коду библиотеки? Да, это работает. И с  std, и со сторонними.
источник

r

red75prime in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Что-то интересное, нужно посмотреть что именно они под этим подразумевают. 😊
Компилятор инструментирует код и добавляет вызовы скедулера в циклы и пролог функций.
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
red75prime
Компилятор инструментирует код и добавляет вызовы скедулера в циклы и пролог функций.
Типа как в Erlang, только "руками", значит. Понятно. 😊
Так-то во всех нативно-компилируемых языках есть эта проблема, что поток может вызывать скедулер только в определённых точках, и не слишком частых (в процессе вызова функций рантайма, понятное дело). Обычно на это закрывают глаза. 😊
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
red75prime
Компилятор инструментирует код и добавляет вызовы скедулера в циклы и пролог функций.
Это всё ещё кооперативная
источник