Tratar concorrencia em App Desktop

Pessoal, gostaria de saber se e necessario fazer um tratamento de concorrencia, e caso seja, como poderia faze-lo

Vlw

Que tipo de concorrência você se refere :?:

Multiplos acessos ao mesmo banco ao mesmo tempo

utilize o synchronized em cada metodo, e declare os parametros de cada metodo como final.

Boas praticas para programação concorrete.

[]'s

mas isso em quais metodos? nos que fazem acesso ao banco? tipo salvar, alterar, etc?

Todos os metodos que vc for acessar via Threads, se for em todos eles forem acessados via threads, sim vai ter que fazer em todos.

Só um detalhe, Threads são malz.

Tome muito cuidado, pq qdo vc inicia uma vc não sabe quando ela vai terminar.

[]'s

q eu saiba uso so a principal mesmo, n criei outras threads nao

Seguinte, eu usei 1 campo version com a anotação @Version, apartir de varios lugares q eu vi falando q eh bom usar isso… so tem 1 detalhe, qual tipo de exception o @Version gera?

Algumas coisas:

  1. Se vc estiver usando interface Swing, saiba que cada janela possui sua própria Thread, então mesmo não chamando uma explicitamente em seu código, pode ser que vc tenha um sistema multhread e nem saiba.

  2. Não saia colocando syncronized em tudo não, ou vc pode ter problemas de performance. Todo método que for ser acessado via Thread vc deve pensar se haveiria problema ele ser acessado por mais de uma Thread de uma vez. Se tiver problema, aí vc coloca o syncronized.

Eu fiz um sistemas com várias janelas que faziam diversas operaçoes com o BD. Ele tinha um DesktopPane principal e várias JInternalFrame. Quando uma fazia requisição ao BD, eu colocava um progress bar para dizer que estava esperando resposta. Como no meu caso o programa somente o programa acessava o BD localmente, as pesquisas no mesmo nao demoravam muito, entao eu decidi por nao deixar o usuário fazer apenas uma requisição por vez ao BD. Se for esse o seu caso, vc nao vai complicar muito o seu projeto.
Uma outra opção seria vc fazer apenas operações de deleção, update e salvamento travarem o programa (Usando uma abordagem pessimista), já que com relação a uma pesquisa, não há grande problemas com acessos paralelo. tudo vai depender das características do seu sistema…