008
14.10.2004, 08:39 Uhr
ao
(Operator)
|
Zitat von ~_tobi_: |
oder ist das jetzt geschmacksache??
|
Wie wir ja inzwischen wissen, sind auf jeden Fall die Threads die, die die Arbeit tun. Die Prozesse schaffen nur die Umgebung dafür.
Zwei Threads in verschiedenen Prozessen haben voneinander getrennte Adressräume / Speicherbereiche. Sie können miteinander nur über Wege kommunizieren, die das Betriebssystem bereitstellt, z.B. Files oder Pipes. Das ist etwas weniger performant, dafür sind sie sehr isoliert und brauchen aufeinander keine Rücksicht zu nehmen.
Zwei Threads im gleichen Prozess teilen sich den Adressraum, können also zusätzlich über gemeinsame Variablen kommunizieren. Bei intensivem Datenaustausch ist es im Prinzip performanter als die Zwei-Prozesse-Lösung, dafür muss sich der Programmierer um konkurrierende Zugriffe Gedanken machen und verhindern, dass die Threads sich im Speicher ins Gehege kommen.
ao |