Ответ
Плюсы:
- Простота использования для базовой синхронизации потоков
- Гарантирует атомарность операций в synchronized-блоке/методе
- Предотвращает race conditions
Минусы:
- Может привести к deadlock при неправильном использовании
- Снижает производительность из-за блокировки всего объекта
- Не поддерживает таймауты или прерывания
class Counter {
private var count = 0
@Synchronized
fun increment() {
count++
}
fun getCount(): Int {
synchronized(this) {
return count
}
}
}