Dentre as aplicações dadas, Synchronized aplica-se APENAS a

Próximas questões
Com base no mesmo assunto
Ano: 2010 Banca: FCC Órgão: TRE-AM Prova: FCC - 2010 - TRE-AM - Programador de computador |
Q34991 Programação
Para responder às questões de números 66 a 68,
considere os modificadores Java e sua aplicação em

I. Atributo.

II. Variável local.

III. Método.

IV. Classe.

Dentre as aplicações dadas, Synchronized aplica-se APENAS a
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - III.

O modificador synchronized em Java é utilizado para controlar o acesso a blocos de código ou métodos que não devem ser executados simultaneamente por mais de uma thread. O uso desse modificador é uma forma de aplicar sincronização, que é essencial em ambientes multithread para evitar condições de corrida e garantir a consistência dos dados.

Vamos entender onde podemos aplicar o modificador synchronized:

  • Atributos (I): Não é possível usar o modificador synchronized em atributos. A sincronização é aplicável a métodos e blocos de código, e não a variáveis ou atributos de uma classe.
  • Variáveis locais (II): Variáveis locais são armazenadas na pilha de cada thread e, por isso, não são compartilhadas entre threads. Não faz sentido aplicar synchronized a elas, pois cada thread terá sua própria cópia independente da variável.
  • Métodos (III): Aqui é onde o synchronized tem sua aplicação correta. Ao declarar um método como synchronized, garantimos que apenas uma thread por vez possa executá-lo, em relação ao objeto que possui o método. Se for um método estático, a sincronização é feita no nível da classe, e não do objeto.
  • Classes (IV): Não aplicamos synchronized diretamente a classes. No entanto, podemos ter métodos estáticos sincronizados dentro de uma classe, o que sincroniza no nível da classe e não dos objetos.

Portanto, a alternativa correta é a D, que diz que synchronized aplica-se apenas a métodos (III). Esta é a única opção que está de acordo com as regras de sincronização de métodos em Java, onde o modificador é usado para prevenir a execução concorrente e garantir que somente uma thread possa executar o método por vez.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Pode-se usar o modificador Synchronized de duas maneiras:

Ou como um bloco, colocando um objeto (ou seja, não pode colocar nenhum dos 8 tipos primitivos do Java: byte, boolean, char, short, int, long,  float, double) que se deseja sincronizar:

// Como bloco
synchronized  ( Object ) {
         (...)
}

Ou como um método sincronizado:

// método sincronizado
public synchronized void evitandoAnomaliasDeAcessoConcorrente( ) {
 (...)
}

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo