Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Qual seria a diferença entre uma variável AtomicBoolean e static

Ola pessoal!

1-Pergunta

Qual seria a principal diferença entre uma variável AtomicBoolean e uma static boolean, por exemplo

privata AtomicBoolean estaRodando
private static boolean estaRodando

Ambas tem o mesmo objetivo de serem compartilhadas por todas as threads,certo? Poderia dizer que o AtomicBoolean faz a abstração da sicronização entre as threads enquanto se eu declarar uma variável static boolean, seria necessário o programador fazer esse controle de sicronização?

2-Pergunta

Outra pergunta,se eu criar 10 threads e em cada uma delas fizer

private AtomicBoolean estaRodando
public ServidorTarefasTeste(){
//Outros atributos
this.estaRodando = new AtomicBoolean(false)
}

Essa variável esta compartilhada entre todas as threads? Ou seja,se uma thread mudar esse valor, as outras vão poder perceber? Ou seria melhor usar uma variável static nesse caso?

Obrigado!

1 resposta

2) Se você criar 10 threads compartilhando o mesmo objeto, a resposta é sim.

1) Acho que você tem razão. O melhor lugar para se certificar é na própria documentação => https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/package-summary.html