Dúvidas sobre synchronized

9 respostas
V

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:

9 Respostas

B

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.

V

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.

B

“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?

É 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…

V

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?

B

“vansol”:
Olá Bruno Carlo,
Isto é possível? O Tomcat pode confundir as sessions?
O que fazer?

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

V

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?

B

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

V

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.

B

É 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. :???:

Criado 31 de agosto de 2006
Ultima resposta 4 de set. de 2006
Respostas 9
Participantes 2