Synchronitäts Probleme

Looky

Erfahrenes Mitglied
Hallo Experten,

also, ich habe ein Programm indem ich einen Hauptvektor habe, wo alle wichtigen Daten drinne sitzen. Dieser Vektor wird zyklisch aktualisiert.

Aus den Daten des Vektors werden diverse Graphen gezeichnet. Wird nun die repaint Methode aufgerufen, während der Thread den Vektor aktualisiert, kommt es natürlich zu einer Exception.

Ich müsste diese beiden Calls synchronisieren, allerdings hat das nicht geklappt indem ich einfach public void synchronized geschrieben habe. Bisher mache ich das mit einer boolean variable die auf true steht bis der Thread durch ist, aber das klappt auch nicht 100 pro. Am besten wäre, wenn das System den Vektor sperrt und paint blockiert bis der Vektor voll da ist.

Wie mach ich das, welche Objekte/Methoden brauchen das synchronized Attribut?

Danke
Christian
 
syncronized sollten alle Methoden oder Blöcke sein, in denen mehrere Threads einen Wert ändern. Beim Werte lesen ist dies nicht so kritisch
 
mhm ja das problem ist, ich habe nur einen thread der die werte ändert, aber eine paint mehtode die automatisch aufgrufen wird und die werte ließt. und da knallts halt. manchmal werden die werte gelesen noch während sie vom thread geändert werden
 
Vieleicht solltest du dir mal was über Threads durchlese. Wenn zwei (oder mehr Threads) lesen, dann gibts eigentlich keine Probleme, aber sobalt einer schreibt und andere machen irgendwas anderes an dieser Stelle, dann gibts probleme...
 
Zurück