fork() in C++
-
The-Kenny schrieb:
Für Threads bietet sich boost.thread an.
Und man sollte hier noch anmerken, dass der neue C++ Standard auch Threads hat und diese sich an Boost.Thread anlehnen.
Grüssli
-
Also ich möchte das nicht mit viel Balast lösen. Also nur mit den Standart Sachen. Weiß jemand wie dieses Standart Bibliothek heisst?
Grüsse,
Haksi
-
haksi74 schrieb:
Also ich möchte das nicht mit viel Balast lösen. Also nur mit den stan**** Sachen. Weiß jemand wie dieses stan**** Bibliothek heisst?
Es gibt bislang noch keine Standardbibliothek für Threading, erst mit dem kommenden C++ Standard C++0x (wird vermutlich 2009/2010 verabschiedet...). Du kannst derzeit nur auf andere Implementierungen, hier ist z.B. boost:: sinnvoll, zurückgreifen.
-
Hat jemand Erfahrung mit fork in C++ gemacht? Wäre dies auch eine Möglichkeit?
Gruss,
Haksi
-
Ja, Du kannst fork auch in C++ Programmen verwenden. Standard ist fork allerdings nicht, weder C noch C++.
@Others:
Multiprocessing != Multithreading
-
*gnahzulangsam*
-
LordJaxom schrieb:
@Others:
Multiprocessing != MultithreadingDa würde mich jetzt mal der genaue Unterschied interessieren, vor allem im Zusammenhang mit
fork.forkerzeugt ja nicht einen vollwertigen neuen Prozess, sondern nur einen Kindprozess. Wo ist der Unterschied, zwischen dem Kindprozess und einem Thread, abgesehen von ein paar Erbsen?Grüssli
-
Dravere schrieb:
forkerzeugt ja nicht einen vollwertigen neuen Prozess, sondern nur einen Kindprozess.Wieso soll der nicht vollwertig sein? Es gibt in einem Unix-System klassisch nur einen Prozess, der nicht Kindprozess eines anderen Prozesses ist, und das ist der init-Prozess mit der PID 1.
-
Dravere schrieb:
Wo ist der Unterschied, zwischen dem Kindprozess und einem Thread, abgesehen von ein paar Erbsen?
Mehrere Threads(Ausführungsstränge) laufen in einem Prozess und teilen sich die Ressourcen des Prozesses.
class Prozess{ std::vector<Thread> threads; };
-
Dravere schrieb:
Wo ist der Unterschied, zwischen dem Kindprozess und einem Thread, abgesehen von ein paar Erbsen?
Der Kindprozess hat z.B. seinen eigenen virtuellen Adressraum, der des Vaters wird dupliziert (nicht sofort, aber das ist ein tech. Detail), der Kindthread hingegen teilt sich den Adressraum mit dem Vater.