Duvida sobre vários usuários

Olá tenho uma duvida que me apareceu, bem tenho um sistema web feito em mvc utilizando padrao dao e tal, não seria possivel por exemplo, os dois usuários acessando um cadastro ai vai para a servelts que seta o DAO, ai seto o meu Javabens e o outro tb, ai nao daria problema caso to setando de um adiciona.setName() e to sentando o resto, mais ainda o primeiro não mandou o objeto para o DAO, ta setando o restante, ai vem o outro usuário e começa a setar tb, adiciona.setName(), não iria sobescrever a minha aplicao, nossa fico meio enrolando mais espero que entendao

FAlow

Uou que lance complicado! [:)]

Seguinte: vão haver diversas instâncias (cada qual em um thread separado) dos servlets carregadas pelo seu servidor. E cada uma destas estará em um momento específico com um usuário específico.

A não ser, é claro, que você esteja usando métodos estáticos. Aí pode ser que você tenha algum problema, porque todos os threads irão acessar os mesmos dados. O problema pode ser reduzido (em parte, apenas em parte) se você definir alguns de seus métodos como synchronized.

[quote=kicolobo]Uou que lance complicado! [:)]

Seguinte: vão haver diversas instâncias (cada qual em um thread separado) dos servlets carregadas pelo seu servidor. E cada uma destas estará em um momento específico com um usuário específico.

A não ser, é claro, que você esteja usando métodos estáticos. Aí pode ser que você tenha algum problema, porque todos os threads irão acessar os mesmos dados. O problema pode ser reduzido (em parte, apenas em parte) se você definir alguns de seus métodos como synchronized.[/quote]

Humm acho que entendi, se entendi certo o proprio Servelts toma conta das instancias par não haver subscricao dos dados, correto??

certo… cada solicitação do cliente é uma thread diferente… quando o usuario submete a pagina sua solicitação é encapsulada em uma thread…

Respira ai cara… :lol:

O que está dentro de um método só é visto pela thread executando o método. Para evitar problemas de concorrência coloque os objetos que devem ser utilizados no escopo do método e não em atributos da classe da thread.

Em casos complexos utilize java.util.concurrent para trabalhar com lock.
No caso de um Servlet cada doPost() ou doGet() é uma transação e os objetos criados para atender essa requisição são visíveis na thread , então se dois chegam quase ao mesmo tempo estão usando instâncias diferentes.

Isso pode ser diferente com singletons , etc… mas em aplicações clássicas é tranquilo.

Usar synchronized resolve porém via deixar lento. Use com cuidado.

Espero ter ajudado.