[Vienna-pm] Fragen zu Threads

Peter J. Holzer hjp at wsr.ac.at
Mon Apr 4 02:05:38 PDT 2005


On 2005-04-02 15:32:05 +0200, peter pilsl wrote:
> Schröttner Robert wrote:
> >Bekomm unter mod_perl jetzt Threads, oder Prozesse - oder hängt das ev. 
> >sogar davon ab welchen apache ich jetzt fahr? (http.worker oder der 
> >andere?)
> 
> tja, auch hier kann ich nicht helfen. Für mich sind threads und prozesse 
> tatsächlich ein Mus/Einerlei und ich würde mich freuen, wenn hier jemand 
> kurz den Unterschied zusammenfasst.

Wie überall in der Informatik gibt es auch für die Begriffe mehrere
Definitionen, und man kann sich die passende aussuchen :-)

In Bezug auf aktuelle, halbwegs weitverbreitete Betriebssysteme gilt:

Ein Prozess ist ein laufendes Programm: Einem Prozess führt ein
Executable aus, hat einen bestimmten virtuellen Speicherbereich,
bestimmte Privilegien, etc. Ein Prozess hat mindestens einen Thread.

Ein Thread ist die Einheit des Schedulings: Jeder Thread eines Prozesses
hat einen unabhängigen Instruction Pointer und Stack, alles andere
(etwas vereinfacht) teilt er sich mit allen anderen Threads des gleichen
Prozesses.

(Das gilt aus der Sicht des Applikationsprogrammierers - die
Implementation kann recht unterschiedlich sein)

> Vor allem in Hinblick auch auf mod_perl.

Zu mod_perl kann ich nichts sagen.

Das Threading in Perl (use threads) ist aber naja, zumindest sehr
ungewohnt.
In anderen Programmiersprachen (C, Java, ...) sind alle Objekte im
Adressraum allen Threads gleichermassen zugänglich, und man muss die,
die man in mehreren Threads verwenden möchte, explizit locken. In Perl
hingegen sind Objekte zunächst einmal in privates Eigentum eines Threads
und müssen explizit geshart werden. Im Prinzip eine gute Idee, aber bei
komplexen Datenstrukturen wird das sehr mühsam. Ich hab's dann wieder
aufgegeben.

	hp

-- 
   _  | Peter J. Holzer \Beta means "we're down to fixing misspelled comments in
|_|_) | Sysadmin WSR     \the source, and you might run into a memory leak if 
| |   | hjp at wsr.ac.at     \you enable embedded haskell as a loadable module and
__/   | http://www.hjp.at/ \write your plugins upside-down in lisp". --ae at op5.se
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 388 bytes
Desc: not available
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20050404/a1f0774a/attachment.bin


More information about the Vienna-pm mailing list