Size: a a a

Kotlin Community

2020 November 24

LS

Lev Shagalov in Kotlin Community
А почему Declaration clash я получаю даже для инлайн функций?
источник

AN

Alexander Nozik in Kotlin Community
Lev Shagalov
А почему Declaration clash я получаю даже для инлайн функций?
Потому что нет гарантий, что они inline в JVM
источник

I

Ivan in Kotlin Community
Добрый вечер. Коллеги, подскажите плз, можно ли проблему type erasure в подобной иерархии, как-то решить с помощью inline + reifed? Ну или каким-то другим, адекватным способом...
источник

I

Ivan in Kotlin Community
источник

I

Ivan in Kotlin Community
Блин, похоже перемешал в кучу дженерики с сигнатурами методов...
источник
2020 November 25

F

François Leclercq in Kotlin Community
По поводу @Volatile я изучил несколько статей и вынес следующее:
1) volatile переменная потокобезопасна только при атомарных операциях над ней из разных потоков, ЕСЛИ только 1 тред меняет ее, а остальные только читают
2) она должна быть одна помеченная как volatile на весь класс

И еще что чтение\присваивание с 64 битовыми long \ double становятся атомарными если переменная volatile

и все это может не работать при определенных имплементациях jvm
источник

F

François Leclercq in Kotlin Community
Поправьте если неправ
источник

AI

Arkadii Ivanov in Kotlin Community
François Leclercq
По поводу @Volatile я изучил несколько статей и вынес следующее:
1) volatile переменная потокобезопасна только при атомарных операциях над ней из разных потоков, ЕСЛИ только 1 тред меняет ее, а остальные только читают
2) она должна быть одна помеченная как volatile на весь класс

И еще что чтение\присваивание с 64 битовыми long \ double становятся атомарными если переменная volatile

и все это может не работать при определенных имплементациях jvm
Не только перечисленное. Ещё любая запись в volatile поле устанавливает happens before. И другие нюансы есть. Тут не надо гадать, надо читать https://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html
источник

F

François Leclercq in Kotlin Community
Arkadii Ivanov
Не только перечисленное. Ещё любая запись в volatile поле устанавливает happens before. И другие нюансы есть. Тут не надо гадать, надо читать https://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html
источник

F

François Leclercq in Kotlin Community
а по ссылке оракл нашел только вкладку про атомарность
источник

AI

Arkadii Ivanov in Kotlin Community
François Leclercq
а по ссылке оракл нашел только вкладку про атомарность
Там по ссылке официальная документация. Рекомендую именно её в первую очередь смотреть.
источник

F

François Leclercq in Kotlin Community
В любой непонятной ситуации отсылай к документации.. Даже если ее нет.
Годы идут, а шутки все те же
источник

AI

Arkadii Ivanov in Kotlin Community
François Leclercq
В любой непонятной ситуации отсылай к документации.. Даже если ее нет.
Годы идут, а шутки все те же
Вы попросили поправить вас. Я поправил. У volotile больше семантики, чем вы описали. Всё это описано по приведенной ссылке. Там несколько разделов, и они все полезны для понимания volatile.
источник

QH

Quantum Harmonizer in Kotlin Community
François Leclercq
По поводу @Volatile я изучил несколько статей и вынес следующее:
1) volatile переменная потокобезопасна только при атомарных операциях над ней из разных потоков, ЕСЛИ только 1 тред меняет ее, а остальные только читают
2) она должна быть одна помеченная как volatile на весь класс

И еще что чтение\присваивание с 64 битовыми long \ double становятся атомарными если переменная volatile

и все это может не работать при определенных имплементациях jvm
П. 2 — ерунда какая-то.
Про «может не работать» — ну нет, какой был бы смысл спеки, если она необязательная?)
источник

с#

саша сок #KotlinGang... in Kotlin Community
François Leclercq
По поводу @Volatile я изучил несколько статей и вынес следующее:
1) volatile переменная потокобезопасна только при атомарных операциях над ней из разных потоков, ЕСЛИ только 1 тред меняет ее, а остальные только читают
2) она должна быть одна помеченная как volatile на весь класс

И еще что чтение\присваивание с 64 битовыми long \ double становятся атомарными если переменная volatile

и все это может не работать при определенных имплементациях jvm
источник

с#

саша сок #KotlinGang... in Kotlin Community
François Leclercq
По поводу @Volatile я изучил несколько статей и вынес следующее:
1) volatile переменная потокобезопасна только при атомарных операциях над ней из разных потоков, ЕСЛИ только 1 тред меняет ее, а остальные только читают
2) она должна быть одна помеченная как volatile на весь класс

И еще что чтение\присваивание с 64 битовыми long \ double становятся атомарными если переменная volatile

и все это может не работать при определенных имплементациях jvm
в общем это работает только на жвм и без корутин
источник

AE

Alexandr Emelyanov in Kotlin Community
саша сок #KotlinGang
в общем это работает только на жвм и без корутин
и на jvm инкремент не отработает, надо использовать atomicinteger
источник

М

Максим in Kotlin Community
можно ли из объекта  object Foo : Bar {) вытащить инит блок через рефлексию ?
источник

VP

Vladimir Petrakovich in Kotlin Community
Максим
можно ли из объекта  object Foo : Bar {) вытащить инит блок через рефлексию ?
Вы что-то неистовое делаете
источник

с#

саша сок #KotlinGang... in Kotlin Community
Максим
можно ли из объекта  object Foo : Bar {) вытащить инит блок через рефлексию ?
зачем
источник