Size: a a a

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

2020 September 03

VK

Vasily Kondratyev in Rust — русскоговорящее сообществo
Эрик
А зачем? В rustdoc формате неудобно читать?
Люблю читать на eink 13.3"
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Потому что "конкурентность" — это когда разные потоки управления могут выполнять абсолютно разные задачи. А когда запускаешь поток — можешь передать абсолютно любую функцию на выполнение. Следовательно, это эквивалентные понятия.
Для справки: "параллельность" — это когда N потоков выполнения "грызут" одну и ту же задачу. Забавно, что ни то, ни другое не подразумевает физической одновременности выполнения. В частности, выполнение "потоков" одного за другим — полностью валидная стратегия параллельного выполнения. Более того, она активно используется при тестировании для проверки корректности алгоритма самого по себе.
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Oleg Andreev
Есть какая-то фундаментальная причина почему вытесняющие потоки внутри одного процесса не могут быть достаточно легковесными чтоб всякие async/await не нужно было лепить на уровне ЯП? Или это скорее продукт исторических причин и в теории можно все по-другому сделать?
Нет таких фундаментальных причин. См. Go, Erlang, Haskell (GHC), Pony.
источник

V

Vitaliy in Rust — русскоговорящее сообществo
Vasily Kondratyev
Люблю читать на eink 13.3"
а я растбук на листочках распечатывал как брошюру )
источник

DF

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

VS

Vladimir SHCHerba in Rust — русскоговорящее сообществo
Конкурентность же это когда можно не одновременно, при параллельности же обычно подразумевается когда действительно на разных ядрах код выполняется?
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Нет таких фундаментальных причин. См. Go, Erlang, Haskell (GHC), Pony.
может, там проблемка с размером стека. Если ты выделяешь большой стек, то у тебя много памяти впустую потрачено (скажем, миллион потоков ждет IO, и занимает 4 Кб стека когда 852 байта каждому), а если стек - linked list, то у тебя слишком много индиректов и тормоза
источник

Э

Эрик in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Нет таких фундаментальных причин. См. Go, Erlang, Haskell (GHC), Pony.
Мне кажется, он спрашивал про уровень ОС, а это всё как раз на уровне языка сделано, не?
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
а async/await компилит ровно столько сколько нужно
источник

VK

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

DF

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

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Dollar Føølish
в хаскеле разве вытесняющая?
Да, конечно. N:M.
источник

DF

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

DF

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

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Oleg Andreev
может, там проблемка с размером стека. Если ты выделяешь большой стек, то у тебя много памяти впустую потрачено (скажем, миллион потоков ждет IO, и занимает 4 Кб стека когда 852 байта каждому), а если стек - linked list, то у тебя слишком много индиректов и тормоза
Но это не фундаментальные, а инженерные проблемы. 😊
источник

OA

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

DF

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

DF

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

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Эрик
Мне кажется, он спрашивал про уровень ОС, а это всё как раз на уровне языка сделано, не?
Я мысли читать не умею — не знаю, что подразумевалось. 😊
То, что я перечислил — на уровне рантайма, так что в самом языке как языке async/await не нужен.
источник

DF

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