Size: a a a

Kotlin Community

2020 May 22

AS

Aleksandr Semyanniko... in Kotlin Community
Alexander Nozik
Думать о потоках надо, но я не понял, при чем тут модель памяти
Ну, насколько я понял корутины, на текущий момент - мой код до suspend-a, сама suspend функция и код после нее может выполняться в разных потоках, поэтому и возник вопрос, а увижу ли я данные правильные.
источник

BP

Bogdan Panchenko in Kotlin Community
Aleksandr Semyannikov
Т.е. к примеру, если я делаю flow, который использует suspend функцию для получения объектов, я могу смело читать данные из объекта без использования с моей стороны механизмов синхронизаций, как делал бы на java?
Flow можно "сравнить" как холодные стримы, немного они о другом, но все же, вы описываете порядок действий, где каждый элемент действия (функция/лямбда) не дрлжна зависит от других. Проще - без сайд эффектов
источник

BP

Bogdan Panchenko in Kotlin Community
Aleksandr Semyannikov
Ну, насколько я понял корутины, на текущий момент - мой код до suspend-a, сама suspend функция и код после нее может выполняться в разных потоках, поэтому и возник вопрос, а увижу ли я данные правильные.
Увидите, если не будет сайд эффекта. Например ваши функции вызываются и используют состояние класса, то тут уже есть нюансы
источник

BP

Bogdan Panchenko in Kotlin Community
Саспенд сохранить состояния до, но не после саспенда
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Разумеется в комоне должен быть хотя бы пустой компаньон
не получится. что бы в коммон сделать пустой компаньон - нужно что бы в jvm был пустой компаньон в классе
источник

AN

Alexander Nozik in Kotlin Community
Aleksandr Semyannikov
Ну, насколько я понял корутины, на текущий момент - мой код до suspend-a, сама suspend функция и код после нее может выполняться в разных потоках, поэтому и возник вопрос, а увижу ли я данные правильные.
Обычно всё-таки в одном. Это надо явно launch делать, чтобы были в разных. Консистентность внутри корутины гарантирована. Проблемы только если одновременный доступ к общим данным.
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
не получится. что бы в коммон сделать пустой компаньон - нужно что бы в jvm был пустой компаньон в классе
Не совсем понял, что комоне.
источник

AN

Alexander Nozik in Kotlin Community
Эксперт для класса нужен джавового или только для статиков?
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Не совсем понял, что комоне.
я не могу в коммон объявить компаньон, если в actual не будет компаньона, у меня там actual typealias
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Эксперт для класса нужен джавового или только для статиков?
и для класса и для статиков
источник

AN

Alexander Nozik in Kotlin Community
Можно сделать объект с именем джавого класса без методов, прифтгачить к нему jvmname, чтобы не было конфликтов и наделать expect расширений
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
и для класса и для статиков
Все, понял кажись.
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Все, понял кажись.
да. есть класс, у него статичные методы-фабрики

в котлине хотел сохранить ту же симантику
источник

AN

Alexander Nozik in Kotlin Community
А пустой компаньон ломает expect?
источник

AN

Alexander Nozik in Kotlin Community
И нужен actual typealias?
источник

AE

Alexandr Emelyanov in Kotlin Community
да
источник

AN

Alexander Nozik in Kotlin Community
По-моему в стдлибе что-то такое было. Надо посмотреть.
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
По-моему в стдлибе что-то такое было. Надо посмотреть.
а в какой часте примерно?
источник

AN

Alexander Nozik in Kotlin Community
Не помню. Я не за компом
источник

AS

Aleksandr Semyanniko... in Kotlin Community
Bogdan Panchenko
Увидите, если не будет сайд эффекта. Например ваши функции вызываются и используют состояние класса, то тут уже есть нюансы
Мерси, буду курить доки дальше
источник