[Vienna-pm] Fragen zu Threads

Maros Kollár maros at k-1.com
Wed Mar 30 06:49:35 PST 2005


Hallo,

Ich arbeite mich gerade in das Thema Perl mit Threds ein, jedoch bleiben bei
mir nach der Lektüre der Doku und einiger Tutorials Fragen zum Thema Thread
Sicherheit und synchronisation von Daten offen.

- Wie wird bei threads::shared mit Referenzen umgegangen?
- Ist sowas möglich?
	my $arrayref: shared = ['wert1','wert2',{'key' => 'value',}];
- Was genau wird bei einem lock gesperrt? Die Referenz oder die
referenzierten Werte oder wird die ganze Datenstruktur gesperrt?
	lock($arrayref);
	$arrayref->[0] # ist jetzt auch der Wert gelockt?
	$arrayref->[2]{'key'} # dieser auch? Wenn ja was passiert mit
zirkulären Referenzen?
- Und ist sowas möglich?
	my $arrayref = [
		{'key' => 'value',}: shared,
		{'key' => 'value',},
	];
- Gibt es eine Möglichkeit Variablen die nicht 'shared' gesetzt sind
irgendwie zu locken?
- Gibt es eine Möglichkeit einen Thread von außen zu stoppen? Z.b. alle
Threads töten wenn der Haput Thread stirbt.
- Wenn ich mehrere Threads habe und ein SIG (z.b: ein 'INT') ausgelöst wird,
an welchen Thread geht es dann?
- Wenn ich im Haupt Thead ein $SIG{__DIE__} = \&bla; habe und einen neuen
Thread starte, was passiert dann mit einem 'die' im neuen Thread? 
- Kann ich pro Thread einen eigenen Signalhandler initialiseren?
- Folgendes Beispiel:
Ein Server mit einem Boss- und mehreren Worker Threads. Der Boss lauscht und
startet immer einen neuen Worker wenn ein Request von einem Client kommt.
Der Worker arbeitet dann den Request ab und kehrt zurück. Pro Connection
gibt es ein Objekt. 
Wie stelle ich nun sicher dass immer nur ein Worker auf eine Objektinstanz
zugreifen kann. Da die Objekte nicht 'shared' sind kann ich ja kein Lock
anwenden.


Vielen Dank
Maroš

Ps.:Bei einigen Fragen kann ich mir eh ungefähr denken wie das Ganze
funktioniert, aber ich frage zur Sicherheit nach, denn bei Perl weichen
Glauben und die Realität doch oft voreinander ab ;-)

--
e-mail: maros at k-1.com
web: http://www.k-1.com
pgp key: http://www.k-1.com/pgpkey.txt
icq: 12281254
_________________________________

"Denn was du für Gesetzlosigkeit hältst, ist gerade die Quelle der Kraft und
der Freiheit des Volkes" - Pseudo-Xenophon, Athener Verfassung



More information about the Vienna-pm mailing list