J'ai un programme c avec n nombre de boucles for. Combien de processus et de processus enfants seront exécutés pour ce programme et comment?Nombre de processus en cours
Répondre
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!
Une boucle for n'embrasse pas un nouveau processus. N nombre de boucle for doit s'exécuter dans un seul processus.
Si vous ne fabriquez pas de fourche, vous n'aurez qu'un seul processus. Alors montrez votre code si vous utilisez une fourchette.
é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?
- 1. Le nombre de processus utilisateur est en cours d'exécution en utilisant bash
- 2. Obtenir le processus en cours donné handle de processus
- 3. Défaut de nombre de threads en cours dans Asp.net 3.5
- 4. ruby: Comment obtenir le nombre de sous-processus (fork) en cours d'exécution
- 5. Tuyau entre le processus en cours et les autres processus
- 6. Hébergement d'un processus en cours dans IIS
- 7. Charge CPU du processus en cours
- 8. Débogage d'un processus python en cours d'exécution
- 9. processus en cours d'exécution, étape par étape
- 10. processus en cours C dans Rails
- 11. Récupérer les noms des processus en cours
- 12. Liste des processus en cours d'exécution
- 13. C#: trouver le processus en cours
- 14. obtenir un progid d'un processus en cours
- 15. Obtenez l'utilisation du processeur en cours de processus en C
- 16. "Impossible de demander ThreadStore" - processus de débogage WinDbg en cours
- 17. Comment limiter le nombre de processus?
- 18. Interagir avec un processus Flash en cours d'exécution?
- 19. Utilisation de la mémoire du processus en cours dans C
- 20. Redirection de la console du processus en cours dans Mono
- 21. Windows: ajouter des restrictions de sécurité au processus en cours?
- 22. Impossible de masquer un processus en cours dans le terminal
- 23. Obtenir l'adresse de début du tas du processus en cours?
- 24. Taille de segment maximale d'un processus Linux en cours d'exécution
- 25. Nant: identificateur de processus d'un service déjà en cours d'exécution
- 26. long processus en cours d'exécution en utilisant Asp.net page asynch
- 27. Interfaces fluides - le nombre d'objets en cours de création
- 28. comment limiter le nombre de travaux PBS en cours d'exécution
- 29. Script Bash avec if/else de base et nombre de processus en cours d'exécution basé sur un pattern
- 30. freebsd: dir actuel du processus en cours d'exécution par l'ID de processus
Votre réponse est correcte s'il fait 'fork()' (ou 'CreateProcess()') à chaque itération, mais il ne le dit pas. –
Oui, j'ai tiré une conclusion (peut-être fausse) des commentaires. – Muggen
Ok, éditez avec peut-être une réponse plus pertinente: P. – Muggen