BP
Size: a a a
BP
AP
AP
VP
Y
VP
Y
VP
AL
class Foo(foo: Int) {
var foo: Int = foo
private set
}data class Foo(private var fooField: Int) {
val foo get() = fooField
}Y
class Foo(foo: Int) {
var foo: Int = foo
private set
}data class Foo(private var fooField: Int) {
val foo get() = fooField
}private set не работалоI
@Synchronizedи
synchronized(lock) { }? Интересно в контексте синхронизации методов целиком. Судя по байт-коду, synchronized(lock) { } генерирует несколько объявлений перед блоком синхронизации, которые не атомарны. И вызов метода содержащего внутри такой блок еще не гарантирует, что тут же будет выполнена блокировка и есть возможность другому потоку успеть вызвать другой синхронизированный метод. Так?VP
@Synchronizedи
synchronized(lock) { }? Интересно в контексте синхронизации методов целиком. Судя по байт-коду, synchronized(lock) { } генерирует несколько объявлений перед блоком синхронизации, которые не атомарны. И вызов метода содержащего внутри такой блок еще не гарантирует, что тут же будет выполнена блокировка и есть возможность другому потоку успеть вызвать другой синхронизированный метод. Так?I
I
I
VP
I
VP
..
VP