Moin zusammen,
bei uns ist eine heiße Diskussion über Threadsicherheit entbrannt... hoffentlich gibt es hier eine klare Antwort.
Folgendes:
1..n Threads benutzen ein
einmal erzeugtes Objekt.
Die Threads rufen eine Funktion namens Cmd parallel auf.
Code:
function TMyObject.Cmd(tx: String; var rx: String): Boolean;
var
myClient: TMyClient;
begin
//myClient erzeugen
//myClient benutzen
//FreeAndNil...
end;
Jetzt gibt es zwei Theorien.
1. Die 'myClient' wird bei parallelen Aufrufen an den gleichen Pointer erzeugt. Und damit ist diese Konstrukt NICHT thread-sicher!
2. 'myClient' wird an verschiedenen Pointern erzeugt und solange man keine globale Variablen benuzt, ist es thread-sicher.
2a. Wenn den so ist warum funktioniert dann Rekursion.
Danke+Gruß
Matthias