Maison  >  Article  >  développement back-end  >  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

王林
王林avant
2023-09-17 21:49:031284parcourir

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);
}

Sortie

5741

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer