Threadsicherheit
-
Hi,
ich habe mal eine Frage. Ich verwende eine Klasse, die von einer List erbt.
Ich fuelle diese Liste genau ein mal und habe dann in einer anderen Quelle eine globalen Iterator der von einer Funktion immer ++ weitergeschoben wird. Dies ist über pthread_mutex_lock geschützt. Die Threads holen sich also immer einen Iterator und lesen diesen eigentlich nur aus. Irgendwie scheint dies aber dennoch die Liste zu zerstören. Kann mir da vielleicht jemand einen Tip geben??
Vielen Dank im Voraus.Gruß
Jonny
-
wenn du die liste erstmal erzeugt hast und dann nicht mehr änderst, kannst du aus beliebig vielen threads auch parallel die liste lesen und nix böses passiert.
-
Hi,
danke fuer die fixe Antwort. Das hatte ich mir eigentlich auch gedacht, das da nichts passieren kann, aber irgendwie schmiert er dennoch ab

Es ist doch aber wohl generell so, das ein rein lesender Zugriff nichts kaputt machen sollte oder??
-
Bei reinen Lesezugriffen auf ein konstantes Objekt benötigst Du keine Synchronisation. Da sollte nichts "kaputt" gehen, wenn Du keinen Fehler im Code hast.
-
Maple schrieb:
Das hatte ich mir eigentlich auch gedacht, das da nichts passieren kann, aber irgendwie schmiert er dennoch ab

Dann musst du wohl woanders suchen
Sagt der Debugger nichts gescheites?