Sobes.tech
Junior — Middle

Como eliminar a condição de corrida ao trabalhar com threads com o mínimo de código?

sobes.tech IA

Resposta da IA

Para evitar condições de corrida ao trabalhar com threads no Android (Java/Kotlin), pode usar os seguintes meios mínimos de sincronização:

  • Palavra-chave synchronized — a forma mais simples de proteger uma secção crítica do código:
@Synchronized
fun increment() {
    counter++
}
  • Uso de variáveis atómicas do pacote java.util.concurrent.atomic, como AtomicInteger:
val counter = AtomicInteger(0)
counter.incrementAndGet()
  • Uso de Volatile para variáveis, para garantir a visibilidade das mudanças entre threads (mas não protegerá contra condições de corrida na operação de incremento).

Assim, a forma mais mínima e frequentemente usada é envolver o acesso a dados partilhados num bloco synchronized ou usar tipos atómicos.