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