Condividi:        

[Java] gestione concorrenza in servlet

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

[Java] gestione concorrenza in servlet

Postdi Swalke » 18/06/08 19:47

Ciao a tutti.
Ho una servlet che contiene una parte di codice in cui devo impedire l'esecuzione di più processi in contemporanea.
Trattandosi di una servlet, viene creata un'istanza diversa per ogni utente che la esegue (non è singleton).

Ho pensato di risolvere il problema in questo modo ma vorrei un vostro parere:

Codice: Seleziona tutto
...
public static final String LOCK_V = "lock_ccu";

 public String execute() throws Exception {
     ...
     synchronized (LOCK_V)
     {
            //codice in concorrenza
            ...
     }
     ...
 }

In pratica eseguendo il synchronized sulla variabile statica LOCK_V impedisco che istanze diverse della servlet eseguano contemporaneamente la porzione di codice compresa nel blocco. Questo perchè LOCK_V è variabile di classe.

Che ne dite?
Non sto considerando qualcosa?
Avatar utente
Swalke
Hardware Admin
 
Post: 820
Iscritto il: 26/10/01 01:00
Località: Milano

Sponsor
 

Re: [Java] gestione concorrenza in servlet

Postdi mrblue » 20/06/08 11:12

in linea di massima hai ottenuto un semaforo,dipende poi da quello che ti serve.
pero sarebbe meglio rendere, se si puo, la parte critica threadsafe, piuttosto che far aspettare le altre istanze di servlet...
ma tutto dipende dal contesto ;)
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma

Re: [Java] gestione concorrenza in servlet

Postdi Swalke » 14/07/08 09:39

Scusa, ma facendo
synchronized (LOCK_V)
{
//codice in concorrenza
...
}
...non sto già garantendo che la porzione di codice venga eseguita da un thread per volta?

Non capisco cosa intendi. :-?
Avatar utente
Swalke
Hardware Admin
 
Post: 820
Iscritto il: 26/10/01 01:00
Località: Milano

Re: [Java] gestione concorrenza in servlet

Postdi mrblue » 22/07/08 15:03

piu + piccola la zona sincronizzata meglio è!!
in ogni caso dai una letta a questo
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma

Re: [Java] gestione concorrenza in servlet

Postdi Swalke » 22/07/08 16:24

Si, si, è proprio da qui che ero partito. ;)
Avatar utente
Swalke
Hardware Admin
 
Post: 820
Iscritto il: 26/10/01 01:00
Località: Milano


Torna a Programmazione


Topic correlati a "[Java] gestione concorrenza in servlet":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti