2010-12-01 10 views

Répondre

0

Le langage C lui-même ne prend pas en charge le programme multitraitement. Vous devez dépendre des API fournies par votre système d'exploitation pour implémenter une version multitraitement. Vous pouvez utiliser la fonction fork sous Linux et CreateProcess dans l'environnement Windows et les API dépendantes de la plateforme correspondante peuvent vous fournir des détails sur l'utilisation de ces fonctions. Bonne chance!

4

Une boucle for n'embrasse pas un nouveau processus. N nombre de boucle for doit s'exécuter dans un seul processus.

1

Si vous ne fabriquez pas de fourche, vous n'aurez qu'un seul processus. Alors montrez votre code si vous utilisez une fourchette.

0

éditer: Juste for boucles ne fera pas de nouveaux processus, et les boucles for seront exécutées dans un seul processus. Si vous voulez créer un nouveau processus sous Linux, utilisez fork().

Si je me souviens bien,

Utilisation de N pour les boucles avec chaque boucle itérer M fois fera quelque chose comme processus M^N, qui, à son tour faire une autre mer des processus M^N depuis fork() crée identiques processus etc ... etc ... Le système peut devenir très lent, et si MAX_PROCESS est dépassé, fork() ne fera pas de nouveaux processus.

Le premier processus créera M^N processus enfants. Ces enfants chacun d'eux va également créer M^N Enfant processus etc ... etc ..

ce que vous essayez d'atteindre?

+0

Votre réponse est correcte s'il fait 'fork()' (ou 'CreateProcess()') à chaque itération, mais il ne le dit pas. –

+0

Oui, j'ai tiré une conclusion (peut-être fausse) des commentaires. – Muggen

+0

Ok, éditez avec peut-être une réponse plus pertinente: P. – Muggen

Questions connexes