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?