Einzelnen Beitrag anzeigen
Alt 16.11.2007, 18:44   #1
tschax2
Newbie
 
Registriert seit: 15.02.2005
Beiträge: 11


Standard

Das ist deshalb so, weil Tomcat ein Application Server ist, und du (im Gegensatz zu PHP) einen Application Context hast.

Zu deiner eigenen Antwort ergänzend: Wenn du eine Methode als synchronized definierst, garantierst du, dass nur ein Thread aktuell die Methode aufrufen kann.

Um eine feinere Regelung zu erzielen, kannst du mit dem Schlüsselwort synchronized auch einzelne Variablen sperren - im Beispiel sperrst du die aktuelle Instanz (this):

Code:
public void print(Point p) {
    float safeX, safeY;
    synchronized(this) {
        // Diese zwei Zeilen laufen
        // jetzt atomar ab
         safeX = p.x();    
         safeY = p.y();
    }
}
(Aus: http://jerry.c-lab.de/java/21Tage/kap18.htm)


Meistens trifft es bei Webanwendungen sowieso die Datenbank - hier solltest du aber eher auf den JDBC Connection Pool (für Datenbankverbindungen) und natürlich auf Transaktionen auf Datenbank-Ebene setzen.


Cheers, Thomas
tschax2 ist offline   Mit Zitat antworten