[quote=lkbm][quote=javaflex]
Não analise as coisas ao pé da letra. Funcional para a pessoa poder copiar e colar na Controller, podendo praticar imediatamente. O código está claro que é só para ilustrar na prática execuções em paralelo, o que você pode fazer na vida real vai ser qualquer coisa que tiver necessidade. Para fins de exemplo, uma string é a maneira mais fácil para ter algum retorno no browser. Não é esse o foco da discussão, mais uma vez você desvia o foco sem necessidade, assim como já fez nas discussões com VinyGodoy. Obviamente o retorno pode ser qualquer coisa, como um json, como um arquivo Excel a qual falei a pouco. Mesmo assim não necessariamente o retorno tem que ser algo pesado ou “palpável” se o que é feito no servidor for algo pesado, tudo depende do caso.[/quote]
Então tudo depende do caso e não podemos analisar cada caso? hm… ?
O fato é que uma requisição web nunca leva 10 segundos se você tem alguma idéia do que esta fazendo. :D[/quote]
Claro que pode analisar cada caso, só não pode atropelar uma resposta indicando como melhor solução algo que não tem haver com o caso citado.
De novo querer levar o exemplo de Sleep como caso real? Os 10 segundos foram para dar tempo a pessoa notar o que acontece executando o código. Se na vida real vai ser 1, 2, 5, ou até mesmo 10 segundos, isso vai ser problema de cada situação. Parece que você fala de aplicação web como se fosse só aplicações públicas na Internet, ou nunca passou por casos envolvendo grande volume de dados ou diversas fontes de dados externas a qual você não é responsável, como por exemplo web services.
[quote=lkbm][quote=javaflex]Depende do caso que deseja atender. Não quer dizer que isso seja mais indicado que outra solução que é feita para atender outro caso. Em muitos casos o cliente faz a ação só para esperar o retorno da mesma, como você mesmo já citou em outros posts e a discussão continuou nisso. Se lá no servidor for uma situação que possa haver divisão de tarefas para processar um mesmo resultado, isso vai ajudar no tempo total da execução.
[/quote]
Nuss… ta cada vez pior.
Por favor, refira ao primeiro post do matheuslmota para entender porque métodos que causam efeitos colaterais, como inserir no banco ou executar processos, não devem retornar valor.[/quote]
O caso do matheuslmota não tem haver com o que descrevi, pois não há concorrência ou dependência em ler dados várias fontes ao mesmo tempo e retornar um documento com essas informações. Duas consultas podem rodar ao mesmo tempo, e quando ambas terminarem, ai sim a aplicação retorna o resultado.
Se você não passa por situações do tipo, não se preocupe com isso, mas também não ignore que exista a possibilidade.