# Synchronized bei zentralem Datenzugriff bei WebApps?



## Krabat (20. Aug 2007)

Ich habe eine grundsätzliche Frage zu WebApplikationen / JSP / Tomcat:
Da es sich um eine Webapplication handelt, erfolgt der Zugriff von vielen Benutzern gleichzeitig. Da bestimmte Daten von allen usern genutzt werden, wäre es doch sinnig, dies zu zentralisieren. Also würde man die Daten bei der Initialisierung der Webapplikation in eine zentrale Struktur laden und diese über Methoden zur Verfügung stellen. 

Müssen diese Methoden dann _sychronized_ sein? Auch wenn nichts verändert wird, sondern die Daten nur gelesen werden? Würde dies dann bedeuten, dass nur ein user zur Zeit die Funktion des Datenzugriffs nutzen kann und alle anderen müssen warten bis Sie an der Reihe sind?


----------



## SlaterB (20. Aug 2007)

das mit dem Warten stimmt, daher wäre snychonized zu vermeiden,
das kann aber teilweise zu Problemen führen,
z.B. ist es nicht erlaubt, dass zwei Threads gleichzeitig eine ArrayList durchlaufen
(Vector dagegen gestattet das, ist synchronisiert)

hängt also davon ab, was du da für Daten hast,
im Zweifel ruhig synchronized machen, sind nur Millisekunden


----------



## ms (20. Aug 2007)

SlaterB hat gesagt.:
			
		

> z.B. ist es nicht erlaubt, dass zwei Threads gleichzeitig eine ArrayList durchlaufen



Hi SlaterB,

bist du dir da ganz sicher?
afaik, wenn die ArrayList nicht verändert wird dann sollte es auch keine Probleme geben.

ms


----------



## SlaterB (20. Aug 2007)

stimmt, irgendwie habe ich da was in Erinnung, richtig Sinn macht das aber im Moment nicht,

ConcurrentModificationException sollte nur bei einer Modification der Liste kommen,
nicht bei geänderten IteratorStand oder was immer ich da komisches dachte,

ich mahne also nur zur Vorsicht, kann aber nix konkretes benennen


----------



## Krabat (20. Aug 2007)

Danke für die prompten Antworten! Ich denke, ich probiers dann erstmal ohne syncronized aus und stelle um, wenns Fehler gibt. Thx!


----------

