Dúvidas sobre synchronized

Olá,

Gostaria de ter mais informações sobre o uso do synchronized .
Onde posso usar?
Vantagem e desvantagem?
Quando devemos usá-lo?

Obrigada pela ajuda.

:wink:

Ola

o synchronized serve para resolver possíveis problemas de concorrencia a um recurso… tipo:

Para métodos, ou partes dele, vc tem um metodo que possivelmente dará um resultado equivocado se for acessado por duas “pessoas” ao mesmo tempo… então use a sincronização, que garantirá que um, e somente, um acessará este recurso por vez, mas bate uma pergunta, e o outro? e outro vai esperar o processamento do primeiro acabar e depois acessar.

Onde posso usar? || Quando devemos usá-lo?
Onde vc vê que pode ocorrer problemas com concorrencia.

Vantagem e desvantagem?
A vantagem que garante a integridade dos possíveis atributos que este método manipula, a desvantagem é que isto pode tornar o processamento mais lendo um pouco.

Espero ter ajudado.

Bruno Carlo,

Obrigada pelo esclarecimento.

Vamos ver se eu entendi:

Quando eu tenho um método que vai fazer atualização de um saldo bancário, por exemplo, (para mais ou para menos) de um determinado correntista neste caso é necessário, pois pode acontecer de uma outra pessoa querendo atualizar o saldo do mesmo correntista, certo?

E se eu tenho algo mais simples, por exemplo, um questionário que deverá ser respondido por aquele usuário logado, onde eu irei gravar o que ele preencheu e seu código de usuário, e somente ele pode fazer
as alterações no registro. Faço o controle pelo código dele.

Neste caso simples eu preciso usar synchronized ???

Obrigada.

[quote=“vansol”]Bruno Carlo,
Quando eu tenho um método que vai fazer atualização de um saldo bancário, por exemplo, (para mais ou para menos) de um determinado correntista neste caso é necessário, pois pode acontecer de uma outra pessoa querendo atualizar o saldo do mesmo correntista, certo?
[/quote]
É isto ae, acho que este é um bom exemplo de onde se usar a sincronização…

É, neste caso acho que não há necessidade para o uso não…

Olá Bruno Carlo,

Estou com alguns problemas a session que eu crio.
Alguns usuários estão reclamando que estão aparecendo algumas informações na tela que não foram ele que inseriram.

Eu não si porque mas de alguma forma o Tomcat está colocando informações de um usuário na tela de outro que está conectado ao mesmo tempo.

Isto é possível? O Tomcat pode confundir as sessions?
O que fazer?

[quote=“vansol”]Olá Bruno Carlo,
Isto é possível? O Tomcat pode confundir as sessions?
O que fazer?[/quote]

Bom, pela especificação dele, tomcat, não é possível não…

Se o tomcat não pode confundir as sessions o que poderá estar acontecendo com o meu sistema?

O meu sistema ele é chamado através de um portal de sistemas (lá tem login e o nome dos sistemas que o usuário tem acesso).

Quando o usuário escolhe o sistema ele abre um nova janela do browser.
Será que neste momento ele está criando uma sessão nova?

Hummm… estranho, o seu sistema faz isto usando servlets? vc coloca o usuário numa nova sessão?.. muito estranho…

Estou usando Struts.

Este problema acontece às vezes. Não acontece sempre. Pra alguns usuários não dá este problema.
Quando está tendo muito acesso aparece este problema.

É estranho, apesar de não sacar muito de struts, mas sei que ele transforma tudo em servlets… muito estranho.

Abre um tópico com este problema novo ae, ae a turma que saca mais de struts que eu poderá te ajudar melhor. :???: