Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] O Spring usa paralelização por default?

Não entendi muito bem a aula, ela tenta sincronizar no service sem usar thread explicitamente, então fiquei na duvida se o spring faz isso por padrão, paralelizar as requisições.

1 resposta
solução!

Olá, Bruno. Tudo bem?

O Spring, por padrão, não paraleliza requisições automaticamente. O comportamento padrão do Spring é tratar cada requisição de forma independente, sem paralelismo explícito a menos que você configure isso. No entanto, ele oferece várias ferramentas para gerenciar concorrência e paralelismo, como o uso de @Async, ExecutorService, ou mesmo o uso de synchronized em métodos, como você viu no exemplo da aula.

No caso do exemplo que você mencionou, a aula está mostrando como simular requisições paralelas para testar o comportamento da aplicação quando múltiplas requisições tentam acessar o mesmo recurso simultaneamente. Isso é importante para identificar problemas de concorrência, como a tentativa de subtrair do estoque simultaneamente, o que pode levar a inconsistências.

Para tratar essas situações, o Spring oferece suporte a transações com a anotação @Transactional, que ajuda a garantir que um bloco de código seja executado de forma atômica. Além disso, o uso de synchronized em métodos pode ajudar a evitar que dois threads executem o método ao mesmo tempo, mas isso deve ser usado com cuidado, pois pode impactar a escalabilidade.

Se você está buscando implementar paralelismo, pode explorar o uso de @Async para métodos assíncronos ou configurar um TaskExecutor personalizado para controlar como as threads são gerenciadas.

Espero ter ajudado e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!