|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2001
Città: Napoli
Messaggi: 3249
|
[Java - Servlet] Sincronizzazione
Ho una servlet che deve fare una connessione ad un database e deve
scrivere delle informazioni. Voglio fare in modo di costituire una "sezione critica" per evitare di sovrappore scritture e di evitare problemi di incoerenza dal punto di vista semantico dei risultati. Il mio problema è che non so come utilizzare una sorta di mutex o semafori in java...cioè del tipo "blocco semaforo" //scrivo "sblocco semaforo" come dovrebbe essere tradotto in codice? Riassumo con un esempio cosa voglio andare a gestire : faccio una query che mi restituisce dei posti disponibili in quel momento, nel frattempo se c'è un altro utente che fa una query simile gli potrà restituire alcuni degli stessi posti disponibili restituiti alla prima query e che magari pochi secondi dopo non sono + disponibili xkè l'utente della prima query li ha occupati. Grazie ![]()
__________________
Codice:
Concluso con[OK BAD]: ercagno,Claudio, Antopx, Lunaticgate, Deuced, Nicola5154,nEA[x2], Lupino.86, ironfrank, Marxio, luke10, Sniper86, alexis1980, Andrea16v[x3], Red_Rose, mitsuhashi1, antanio, Rinos, flavix25, geolite30, cianuro, spzerosp, GoldFinder, Zagor4, Mercurius00, Leland Gaunt, Iron10, tyco74, Clatit, PaPuAsja, onka, jing13, _19Fabio85_, Murakami, raizen89, dinigio63, ncerozz, rtype, Isotattico, vinz86, valdisteadsl, battalion75 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Ciao,
premetto che probabilmente, quello che vuoi fare, e' piu' facilmente risolvibile con un uso accorto degli strumenti messi a disposizione dal database (quali transizioni, ecc.). Per quanto riguarda la costruzione di una sezione critica (Prima di J5): 1 - Dichiara e crea un oggetto di tipo qualsiasi (Object va bene, ma se hai un oggetto migliore lo puoi fare). Questo oggetto deve essere visibile a tutti i thread che vuoi sincronizzare. 2 - Quando vuoi accedere alla sezione critica, scrivi: synchronizedPer sbloccare synchronized { obj.notify(); } C'e' una teoria che assicura che queste due primitiva sono sufficienti per simulare qualsiasi meccanismo di sincronizzazione, semafori compresi. Cmq J5 ha nuove primitive per la sincronizzazione, probabilmente ha gia' quelle che ti interessano. Spero di non aver preso fischi per fiaschi. Ti prego di perdonarmi se la risposta non c'entra niente con la domanda che avevi posto... ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2001
Città: Napoli
Messaggi: 3249
|
+ o - è quello che volevo sapere.
Appena implemento e mi serve un aiuto te lo chiedo ![]() In ogni caso... grazie per la risposta, gentilissimo ![]()
__________________
Codice:
Concluso con[OK BAD]: ercagno,Claudio, Antopx, Lunaticgate, Deuced, Nicola5154,nEA[x2], Lupino.86, ironfrank, Marxio, luke10, Sniper86, alexis1980, Andrea16v[x3], Red_Rose, mitsuhashi1, antanio, Rinos, flavix25, geolite30, cianuro, spzerosp, GoldFinder, Zagor4, Mercurius00, Leland Gaunt, Iron10, tyco74, Clatit, PaPuAsja, onka, jing13, _19Fabio85_, Murakami, raizen89, dinigio63, ncerozz, rtype, Isotattico, vinz86, valdisteadsl, battalion75 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:31.