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

Https://Www.Youtube.Com/Watch?V=ZluKcazgkV4 Просто оставлю это здесь, может кому-нибудь всё таки интересно будет

48 ответов

234 просмотра

Человек защищает свой проект, но получается так себе.

Ilya Starchenko
Человек защищает свой проект, но получается так се...

Можно хейтить виртуальный потоки за то, что они сырые, но концептуально они лучше.

Borislaw-P Автор вопроса
Ilya Starchenko
Человек защищает свой проект, но получается так се...

Я и не говорил, что его мнение является абсолютно непредвзятым

Borislaw-P Автор вопроса
Ilya Starchenko
Можно хейтить виртуальный потоки за то, что они сы...

так он их и не хейтит там, он там рассказывает про то как внутрянки обоих устроены. И для чего они создавались. Пока что килер фичей корутин является structured concurency. её и в лум хотят завести

Borislaw P
Я и не говорил, что его мнение является абсолютно ...

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

Borislaw P
так он их и не хейтит там, он там рассказывает про...

Структурное конкаренси - это круто, но нужно 3 человекам, основаная проблема, еще раз, в том, что они stackless и от этого не уйти.

Ilya Starchenko
Ну просто он сразу говорит, что красить код - это ...

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

Bohdan Panchenko
в обоих подходах есть минусы. В джавовых виртуальн...

Не нужно ничего вызывать, все сделано на уровне стандартной библиотеки(А может и preemptibe прикрутят, все-таки у нас safepoint'ы есть), у continuation даже публичного api нет.

Ilya Starchenko
Не нужно ничего вызывать, все сделано на уровне ст...

Можно запарковать поток, но его и раньше можно было парковать.

Bohdan Panchenko
стандартная да, а другие либы?

А что другие? Другие используют стандартную либу.

Bohdan Panchenko
Netty?

Тикет висит...

Ilya Starchenko
Структурное конкаренси - это круто, но нужно 3 чел...

"снованая проблема, еще раз, в том, что они stackless и от этого не уйти." а еще раз в чем проблема?

Bohdan Panchenko
"снованая проблема, еще раз, в том, что они stackl...

Проблема в том, что они красят код, а люди хотят писать старые-добрые thread per request сервера.

Ilya Starchenko
Проблема в том, что они красят код, а люди хотят п...

можно не красить код, это не проблема stackless threads. В корутинах решили что нужно красить, поясняли почему так решили. Меня порой это бесить, так как апи нужно думать (а нужен тут саспенд или нет), а з другой стороны очень стремно вызывать метод непонимая а его точно омжно вызывать

Bohdan Panchenko
можно не красить код, это не проблема stackless th...

А можно пример, как можно в stackless-корутинах не красить код, когда у нас есть только состояние функции?

Bohdan Panchenko
можно не красить код, это не проблема stackless th...

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

Ilya Starchenko
А можно пример, как можно в stackless-корутинах не...

конкретно в корутинах решили красить, вы о чем? Читаем что пишут люди? Где не красят? в Го например

Ilya Starchenko
Лол, в го stackfull-корутины, о чем вы?

При чем даже preemptive stackfull-корутины.

Ilya Starchenko
Лол, в го stackfull-корутины, о чем вы?

разве? ну ок ошибся. Хрошо лумовские треды - это тоже не реальные треды верно?

Ilya Starchenko
Что значит не реальные треды?

виртуальные, но да они ос стеком. Ладно пока примера хорошего нет, что бы прям без стек. Но чисто технически рантайм может дать апи что бы ты мог "выкачать стек" в continuation, и закачать обратно.

Bohdan Panchenko
виртуальные, но да они ос стеком. Ладно пока приме...

Это и делают виртуальные потоки, там нет ос стека.

Ilya Starchenko
Это и делают виртуальные потоки, там нет ос стека.

Там идет freeze/thaw, когда с твеого pthread'а стек и регистры идут на хип в виде continuation(связаного списка).

Ilya Starchenko
Это и делают виртуальные потоки, там нет ос стека.

не понял місль, лумовские тоже просто хранять в себе "стек", они ничего не испольняют и так же копируют. Не раскрашивать можно но єто не тривально сделать, нужно определить в каких случаях єто омжно

Bohdan Panchenko
не понял місль, лумовские тоже просто хранять в се...

Лумовские континуации - это полноценный мутабельный стек, а континуации в котлине - это состояние одной функции.

Ilya Starchenko
Лумовские континуации - это полноценный мутабельны...

да. Вся разница. Но вопрос же был про краски, и что они обязательны, но нет. Например, перед любым вызовом функции мы копируем стек (это дорого одна из причин красок) себе в объектик.

Bohdan Panchenko
да. Вся разница. Но вопрос же был про краски, и чт...

И снова нет, ничего мы не копируем перед вызовом функции.

Ilya Starchenko
И снова нет, ничего мы не копируем перед вызовом ф...

вы в мою голову залезли и в мой выдуманый компилятор?

Bohdan Panchenko
вы в мою голову залезли и в мой выдуманый компилят...

Вы придумали очень медленные stackfull-корутины.

Ilya Starchenko
Вы придумали очень медленные stackfull-корутины.

да нет, стека нет, все почесному. Ну медлено я это в скобках написал

Bohdan Panchenko
да нет, стека нет, все почесному. Ну медлено я это...

Я правда не понимаю, о чем вы. Вы сами написали, что вы копируете стек в continuation на хип. Это и есть stackfull-continuation.

Ilya Starchenko
Я правда не понимаю, о чем вы. Вы сами написали, ч...

стек - абсрактная штука. 1. Я могу в компайл тайме знать все свои переменные, и их помещать в continuation 2. Мы можем брать не напрямую со стсека, а например просить рантайм дать нам из этого контектса по этому имени ( нужна поддержка рантайма), и в компайл тайме вызвать н-раз возможность, чисто тереотически мы не знаем работаем мы состеком или нет. Но фактически скорей всего это будет стек.

Bohdan Panchenko
стек - абсрактная штука. 1. Я могу в компайл тайм...

Вы работаете в какой-то своей операционке? Просто если это линукс, то pthread(futex syscall) требует стека.

Ilya Starchenko
Вы работаете в какой-то своей операционке? Просто ...

в абстрактной машине, JVM тоже строить свои предположения на абстрактном представлении машини

Bohdan Panchenko
стек - абсрактная штука. 1. Я могу в компайл тайм...

То, что вы говорите - это и есть stackfull-континуации, просто вы решили натянуть их на другую модель памяти(Что в принципе имеет смысл, так как спецификация не требует стека).

Vlad K
Что значит красить код?

у тебя функции на примере котлина делятся на suspend и обычные

Ilya Starchenko
То, что вы говорите - это и есть stackfull-контину...

да лол. Тогда котлин это stackfull, ведь он делает ровно тоже что и я предлагаю, Все вопрос закрыт

Bohdan Panchenko
да лол. Тогда котлин это stackfull, ведь он делает...

Нет, его континуации - это состоянии одной функции.

Ilya Starchenko
Нет, его континуации - это состоянии одной функции...

в корутинах тоже одной, но там еще родительськая есть, вот и все

Bohdan Panchenko
в корутинах тоже одной, но там еще родительськая е...

И по этой причине они могут пароковаться на любой глубине стека:)

Стек есть у твоей операционки, корутины(и лум, и котлин) работают на тех же системных потоках.

Ilya Starchenko
Стек есть у твоей операционки, корутины(и лум, и к...

совершено верно, неужели мі єтого не знали...

Bohdan Panchenko
совершено верно, неужели мі єтого не знали...

А как связан стек системного потока и корутина? Это не связные вещи.

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта