Maison > développement back-end > C++ > En langage C, le nombre maximum de threads pouvant être créés dans un processus

En langage C, le nombre maximum de threads pouvant être créés dans un processus

王林
Libérer: 2023-09-17 21:49:03
avant
1323 Les gens l'ont consulté

En langage C, le nombre maximum de threads pouvant être créés dans un processus

La tâche confiée est de trouver le nombre maximum de threads pouvant être créés dans un processus

C.

Les threads sont des processus légers et peuvent être gérés indépendamment par le planificateur. à cause d'un Un thread est un composant d'un processus, plusieurs threads peuvent donc lui être associés

Par rapport aux processus, les threads sont non seulement plus légers à gérer, mais nécessitent également moins de temps pour changer de contexte.

Les threads nécessitent moins de ressources que les processus et partagent également de la mémoire avec leurs pairs.

fil de discussion. Tous les threads homologues au niveau utilisateur sont traités comme une tâche unique par le système d'exploitation. moins Leur création et leur cessation prennent du temps.

Chaque fois que vous exécutez le programme, le résultat est toujours différent.

La méthode utilisée dans le programme ci-dessous est la suivante

  • Créez la fonction void* create(void *) et laissez-la vide car ce n'est qu'à titre de démonstration

  • Initialisez deux variables de type int max = 0 et ret = 0 dans la fonction main() Stockez le nombre maximum de threads et la valeur de retour séparément.

  • Déclarez une variable "th" de type pthread_t.

  • Exécutez la boucle while avec la condition ret == 0 et placez ret = pthread_create (&th, NULL, créer, NULL);

  • Itérer max++ à l'intérieur de la boucle.

  • Imprimez au maximum en dehors de la boucle.

    >

Exemple

#include<pthread.h>
#include<stdio.h>
/*Leave the function empty as it
only demonstrates work of thread*/
void *create ( void *){
}
//main function
int main(){
   int max = 0, ret = 0;
   pthread_t th;
   //Iterate until 0 is returned
   while (ret == 0){
      ret = pthread_create (&th, NULL, create, NULL);
      max++;
   }
   printf(" %d ", max);
}
Copier après la connexion

Sortie

5741
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal