Na tecnologia Servlet versão 2.4 ou superior, a execução do ...

Próximas questões
Com base no mesmo assunto
Q80561 Programação
Com relação à tecnologia Servlet, julgue os itens subsequentes.

Na tecnologia Servlet versão 2.4 ou superior, a execução do programa apresentado a seguir, em dois browsers distintos e com diferença de tempo de acesso inferior a 5 segundos permite fornecer o mesmo número para essas duas solicitações.

Imagem 008.jpg
Alternativas

Comentários

Veja os comentários dos nossos alunos

Não entendi o gabarito,
Se a diferença entre o acesso é inferior a 5 segundos e o SLEEP é de 6 segundos,
o segundo Browser a acessar o "contador.txt" vai ler o mesmo valor que o primeiro Browser porque este ainda não teve "tempo" p/ alterar o "contador.txt".

Ou o problema é que o Thread não funciona assim?
Pois estou sentindo falta de um t.run() ou "implements Runnable"
Se alguém comentar, agradeço.
Esse código cria uma thread e simplesmente a coloca para dormir por 6 segundos. No entanto essa thread criada não vai travar a execução do procedimento atual, desta forma o método vai continuar até o final.

A intenção da banca era que achassemos que neste ponto o programa ficaria esperando 6 segundos para continuar sua linha de execução.

Quando outra requisição acontecer algum tempo depois o valor do número exibido será o anterior +1.
Questão com gabarito errado. Criem o exemplo e façam o teste.

Veja a execução iniciada com 1 segundo de diferença, onde coloquei a data/hora no início e no fim. A thread "dorme" por seis segundos, retornando o mesmo valor...


Comecou Sun Mar 04 10:33:10 BRT 2012 número exibido 16 Terminou Sun Mar 04 10:33:16 BRT 2012 

Comecou Sun Mar 04 10:33:11 BRT 2012 número exibido 16 Terminou Sun Mar 04 10:33:17 BRT 2012 
Eu fui de errado, mas não usando os conceitos JAVA, uma vez que, conforme já dito acima, as threads podem sim ler do arquivo antes de terminar o sleep.

No entanto, duas coisas me chamaram a atenção.

1. Em um ambiente cliente-servidor, não há garantias que as chamadas por recurso a partir do browser (cliente), ainda que acionadas ao mesmo tempo, cheguem ao servidor ou sejam tratadas por ele ao mesmo tempo. HTTP pressupõe pilha TCP/IP, menor esforço, sem garantias, etc.

2. O trecho da questão diz: a execução do programa apresentado a seguir, em dois browsers distintos
O programa (servlet) apresentado não será executado no browser (cliente) e sim no container web (servidor)

Se for isso mesmo, o examinador floreou a questão com códigos java de modo a nos desviar a atenção.

A thread criada dorme em background, mas não trava a execução do programa, logo os números exibidos serão distintos, pois haverá incremento.

Clique para visualizar este comentário

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