Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Unterschied zwischen einem Prozess un deinem Thread?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.10.2004, 19:00 Uhr
~_tobi_
Gast


Hello!

Ich hab mal ne eher allgemeine Frage; und zwar wo ist eigentlich der prinzipielle Unterschied zwischen CreateProcess() und CreateThread() ?

Gibt es da etwa Perfomance- Vorteile von irgendeinem? Oder vielleicht besondere Anwendungsfälle? Kann ein Prozess "nebenher" laufen wie ein Thread??

Mfg & Danke schon jetzt!

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2004, 19:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Prozess ist völlig eigenständig... Thread ist sowas wie ein unterprozess... das heisst wenn du schon einen am laufen hast und dann nen Thread eröffnest teilen sich die beiden den speicher... (das heisst wenn du den prozess abschiesst dann auch die dazugehörigen prozesse)
was von beiden zu verwenden gerade besser ist hängt vermutlich vom einzelfall ab. ich nehm eigentlich immer threads und nur wenns damit nicht geht schmeiss ich nen eigenen prozess an...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.10.2004, 19:14 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


thread = unterprozess

d.h


Code:
|- prozess
   |- thread
   |- thread
      |- thread
|- prozess
   |- thread
...


--
class God : public ChuckNorris { };

Dieser Post wurde am 13.10.2004 um 19:15 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.10.2004, 19:17 Uhr
~_tobi_
Gast


mmmh.. wenn ich aber darauf achten muss, möglich wenig Prozessorzeit zu belegen aber nur ein bis zwei Dinge gleichzeitig machen muss; empfielt sich dann eher ein oder zwei ordentlich gesteuerte Threads oder sollte man dann eher ein Prozess nehmen? oder ist das jetzt geschmacksache??

Eigentlich geht es mir nur darum, wie gesagt, den Prozessor möglichst wenig zu belasten und das hab ich mit nem Thread realisiert. Interessant wäre jetzt nur wenn es tatsächlich so wär dass ich da noch was rausholen könnte... mit Prozessen eventuell?! Was ist denn wenn ich zwei Prozesse starte? Verhalten die sich besser als zwei Threads? Und lässt sich so ein Prozess auch anhalten oder welche Möglichkeiten der Steuerung hat man da ?

Fragen über Fragen


Trotzdem danke

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.10.2004, 19:18 Uhr
~_tobi_
Gast


Ups.. ich tippe zu lange!

super- danke!

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.10.2004, 19:54 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Das hat nicht mit Prozessorbelastung zu tun.

Jede Anwendung die auf deinem PC läuft ist bzw hat einen Prozess. Wenn diese Anwendung einen neuen Prozess startet, dann startet sie eine komplett neue Anwendung.

Solltest du jetzt innerhalb deiner Anwendung mehrere Dinge "gleichzeitig" machen wollen so kannst du mehrere Threads starten die dann zu dieser Anwendung gehören.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.10.2004, 20:59 Uhr
Spacelord
Hoffnungsloser Fall


Letztendlich bekommt ein Prozess keine Rechenzeit zugewiesen sondern nur seine Threads.
Jeder Prozess hat mindestens einen Thread! Endet dieser Thread endet auch der Prozess.
Wenn du also einen neuen Prozess startest,legst du letztendlich nur einen neuen Thread an der aber in seinem eigenen Prozess läuft.Ein Prozess ist der "Rahmen" einer Anwendung,die echte Arbeit wird von den Threads erledigt.So ein Prozess bringt natürlich einiges an "Verwaltungsinformationen" mit so dass ein Wechsel zu einen fremden Thread(Prozess) komplexer ist als zu einen anderen Thread des eigenen Prozesses.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.10.2004, 22:00 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


rechenzeit kostet trotzdem nur das was du in dem jeweiligen Prozess oder Thread ausführen willst. Wenn man zwei "leere" prozesse/threads vergleicht, dann gewinnt natürlich die "neuer thread"-variante, da wie gesagt beim anlegen von einem neuen prozess mehr arbeit verrichtet wird als beim anlegen eines weiteren threads
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
14.10.2004, 19:50 Uhr
~_tobi_
Gast


Vielen Dank für die ausführlichen Antworten. Nun weiss ich einwenig mehr Bescheid!

Super & vielen Dank!!

Gruss

Tobi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: