Thread dbi-handler an threads übergeben (1 answers)
Opened by n0bbi at 2006-08-15 09:30

ich
 2006-08-19 03:39
#68951 #68951
User since
2003-09-19
120 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

um Variabeln, Arrays und Objekte von Eltern und Kindprozess gleichzeitig benutzen zu können gibt es das Module CPAN:threads::shared.
Allerdings kannst du damit auch keine Datenbankverbindung teilen.

Die Sache ist die, das durch einen "Fork" (erzeugung eines neuen Threads) das Daten- und Stacksegment und der Heap des Elternprozesses kopiert wird. Beide Prozesse fahren dann mit unterschiedlichen Instruction Pointern weiter. D.H. Die Variablen (Scalare, Arrays, ... Objekte) heißen zwar noch gleich, zeigen aber auf unterschiedliche Speicherbereiche.

Das Eltern und Kindprozess die gleichen Speicherbereiche verwenden braeuchte man die Funktion "clone", die es allerdings nicht auf jedem System gibt und ich weiss auch nicht ob man diese mittels dem "threads"-Module aufrufen kann.

Die Netzwerkverbindung die das MySQL / DBI Objekt offen hat überlebt so einen "fork" nicht (die Netzwerkverbinung geht verloren).

Wenn es doch gehen sollte wäre ich für eine Antwort dankbar :)

Gruss
Jan
If you tell the truth you don't have to remember anything.
-- Mark Twain

View full thread dbi-handler an threads übergeben