Processus enfant multiple
quelqu'un peut m'aider sur la façon de créer plusieurs processus enfants qui ont le même parent pour faire "quelques" le cadre de travail particulier?
par exemple, un algorithme de tri qui est appliqué dans le processus; chaque processus enfant trie une partie des données et, enfin, le parent fusionne..
EDIT: je devrais Peut-être mentionner la croisée de multiples processus enfants avec boucle..
source d'informationauteur israkir
Vous devez vous connecter pour publier un commentaire.
Ici est de savoir comment la fourche à la fourchette de 10 enfants et attendre pour eux de terminer:
Je pense qu'il serait intéressant de montrer pourquoi les threads sont plus approprié ici:
Que vous êtes en train de faire une "partie" de l'emploi en parallèle je suppose que votre programme a besoin de connaître le résultat du calcul. fork()s d'un processus ne partagent pas plus de l'information initiale après le fork(). Toute modification dans l'un processus est inconnu à l'autre et vous avez besoin de passer l'information d'un message (par exemple à travers un tuyau, voir "homme à la pipe").
Les Threads d'un processus partagent la même adresse espace et à cet effet, sont en mesure de manipuler les données et de les avoir visible toeach autres "immédiatement". Ajouter également les avantages d'être plus légère, j'irais avec les pthreads().
Après tout: Vous apprendrez tout ce que vous devez savoir à propos de fork() si vous utilisez pthreads de toute façon.
Vous pouvez faire cela avec fourche. Un parent peut fourche que peut de fois qu'il le veut. Cependant, je suis d'accord avec AviD pthreads peut être plus approprié.
Si vous souhaitez lancer plusieurs fourches, vous devriez le faire de manière récursive. C'est parce que vous devez appeler fourche du processus parent. Sinon, si vous lancez une deuxième fourche, vous permettra de dupliquer les deux parents et le premier processus enfant. Voici un exemple: