Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.443 Beiträge
Delphi 12 Athens
|
AW: Rekursion unterdrücken
12. Mai 2014, 10:30
Du solltest auch beachten, daß der Lock nicht zwingend an eine einzelne Methode gebunden ist. So würde es z.B. bei einem Listenobjekt nicht reichen, die Methoden Add und Delete mit jeweils einem getrennten Lock zu versehen. Vielmehr müssen die beiden auf denselben Lock verweisen. Beim Multi-Threading synchronisiert man nicht die Methoden, sondern die gemeinsam verwendeten Ressourcen. Methoden mit ihren lokalen Variablen und Parametern sind von Haus aus thread-safe. Im Allgemeinen nicht thread-safe ist der Zugriff auf Variablen, die außerhalb der Methoden deklariert sind. Mit deinem Ansatz deckst du nur den seltenen Spezialfall ab, daß diese Variablen ausschließlich von einer deiner Methoden verwendet werden. Das solltest du in deinem Design vorsehen, selbst wenn es zur Zeit nicht relevant ist.
|