Logo Passei Direto
Buscar
(CESGRANRIO - BNDES - Profissional Básico - Análise de Sistemas - 2011) Os usuários de um sistema Web, desenvolvido em Java, reclamam de erros nos dados consultados. A equipe técnica, ao analisar a situação, concluiu que determinado método M está sendo invocado, simultaneamente, por diferentes threads. Considerando que não há manipulação de locks no restante do sistema, o que pode ser feito para que M seja executado, em dado momento, somente por uma thread?


Ajustar o firewall de borda para permitir uma conexão por IP.
Implementar connection pooling no acesso ao banco de dados.
Utilizar a keyword lockable no bloco de M.
Declarar o método M como synchronized.
Reescrever M em Assembly, necessariamente.
User badge image
Estudo Através de Questões

há 2 anos

Respostas

User badge image

Ed Verified user icon

há 10 meses

Para resolver a questão sobre a execução simultânea do método M por diferentes threads em um sistema Java, precisamos considerar como o Java lida com a concorrência. A opção que permite que um método seja executado por apenas uma thread de cada vez é a utilização da palavra-chave `synchronized`. Quando um método é declarado como `synchronized`, ele garante que apenas uma thread pode executá-lo por vez, bloqueando as outras threads até que a execução do método seja concluída. Vamos analisar as alternativas: a) Ajustar o firewall de borda para permitir uma conexão por IP. - Isso não resolve o problema de concorrência entre threads. b) Implementar connection pooling no acesso ao banco de dados. - Isso melhora a eficiência do acesso ao banco, mas não resolve a questão da execução simultânea do método. c) Utilizar a keyword lockable no bloco de M. - Não existe uma keyword `lockable` em Java. d) Declarar o método M como synchronized. - Esta é a solução correta, pois garante que apenas uma thread execute o método por vez. e) Reescrever M em Assembly, necessariamente. - Isso não é uma solução viável e não resolve o problema de concorrência em Java. Portanto, a alternativa correta é: d) Declarar o método M como synchronized.

Essa resposta te ajudou?

0
Dislike0

Experimente
o Premium! 🤩

Libere respostas sem pagar

User badge image

Ed Verified user icon

há 2 anos

Para que o método M seja executado, em dado momento, somente por uma thread, a opção correta é declarar o método M como synchronized. Isso garante que apenas uma thread por vez possa acessar e executar o método, evitando possíveis erros nos dados consultados.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

(CONSULPLAN - TRE-RJ - Analista Judiciário -Análise de Sistemas - modificado) Analise as seguintes afirmativas sobre a programação orientada a objetos com Java. I. O tratamento de exceção permite criar programas tolerantes a falhas. II. Para lidar com uma exceção, deve-se colocar qualquer código que pode lançar uma exceção em uma instrução catch. III. O método toString de um objeto de exceção retorna uma mensagem de erro da exceção. IV. O bloco catch contém o código que pode lançar uma exceção e o bloco try contém o código que manipula a exceção se uma ocorrer. Está(ão) correta(s) apenas a(s)


I
II
III
IV

Mais conteúdos dessa disciplina