Wie fork() eine genaue Anzahl der Kinder

Also ich arbeite an einem Programm, das eine bestimmte Aufgabe mehrere Male. Ich habe das Programm geschrieben schon einmal mit threads, aber jetzt bin ich verpflichtet, es zu tun mit einem Prozess mit fork().

Mit threads, ich würde einfach erstellen Sie die angegebene Anzahl von threads, haben Sie eine Funktion ausführen (ändern einer variable im gemeinsamen Speicher), und dann führe schließlich etwas, das den letzten Wert in den shared memory.

Nun möchte ich aber, das gleiche zu tun, aber ich bin mir nicht sicher, wie es zu tun, als jedes mal ich rufen Sie fork() im wesentlichen verdoppelt sich. So natürlich, wenn ich call fork() in einen forloop, jede Eltern-und Kind-Prozess wird dann durch die Schleife ruft fork() auf Ihre eigenen.

Also meine Frage in Kurzform:
wie könnte ich erstellen, eine genaue Anzahl von Kindprozessen mit fork (sprich ich muss 5 Kinder), und haben meine Eltern-Prozess warten, bis diese 5 sind fertig ausgeführt ist, bevor es bewegt sich auf?

Danke für die Hilfe!

Jedes Kind weiß, dass es das Kind ist; stellen Sie sicher, es macht nur die Dinge, die ein Kind tun soll (in die Schule gehen?) und stellen Sie sicher, dass es beendet wird, ohne fortgesetzt, wo der parent-Prozess ausgeführt wird (bei der Arbeit?). Wie bei der Antwort von niculare, oder Quentin.

InformationsquelleAutor pledgehollywood | 2013-03-10

Schreibe einen Kommentar