Por que não há palavras-chave para concorrência (synchronized, volatile) em Kotlin?
Olá a todos! Sou um desenvolvedor iniciante em Kotlin, migrando do Java. Em Java, eu estava acostumado a usar as palavras-chave `synchronized`, `volatile`, bem como blocos `synchronized` para controlar o acesso a recursos compartilhados em aplicações multithread. Mas quando comecei a escrever em Kotlin, notei que a linguagem não tem essas palavras-chave! Por exemplo, tentei escrever um contador thread-safe simples:
```kotlin
class Counter {
private var count = 0
fun increment() {
// Como sincronizar este método?
count++
}
}
```
Em Java, eu escreveria `public synchronized void increment()`, mas em Kotlin não há essa possibilidade. Encontrei na documentação que existem as anotações `@Synchronized` e `@Volatile`, mas não é a mesma coisa que palavras-chave. Parece-me uma decisão muito estranha para uma linguagem que se propõe a ser uma substituição moderna do Java.
Por que os criadores do Kotlin abandonaram essas palavras-chave? Como devo escrever código multithread corretamente agora? Preciso