Número máximo de subprocesos que se pueden crear dentro de un proceso en C

El hilo de ejecución es la secuencia más pequeña de instrucciones programadas que el programador puede administrar de forma independiente. El subproceso es un componente del proceso y, por lo tanto, se pueden asociar varios subprocesos en un proceso. Linux no tiene un límite de subprocesos separados por proceso, pero tiene un límite en la cantidad total de procesos en el sistema (ya que los subprocesos solo procesan con un espacio de direcciones compartido en Linux).

Nuestra tarea es averiguar el número máximo de subprocesos que se pueden crear dentro de un solo proceso (número máximo de subprocesos que puede crear pthread_create). Se puede ver el número máximo de subprocesos en ubuntu usando el comando:

cat /proc/sys/kernel/threads-max

Este límite de subprocesos para Linux se puede modificar en tiempo de ejecución escribiendo el límite deseado en /proc/sys/kernel/threads-max .

Compile el siguiente programa en el sistema operativo ubuntu, para verificar la cantidad máxima de subprocesos que se pueden crear dentro de un proceso en C.

cc filename.c -pthread where filename.c 
is the name with which file is saved.
// C program to find maximum number of thread within
// a process
#include<stdio.h>
#include<pthread.h>
  
// This function demonstrates the work of thread
// which is of no use here, So left blank
void *thread ( void *vargp){     }
  
int main()
{
    int err = 0, count = 0;
    pthread_t tid;
      
    // on success, pthread_create returns 0 and 
    // on Error, it returns error number
    // So, while loop is iterated until return value is 0
    while (err == 0)
    {
        err = pthread_create (&tid, NULL, thread, NULL);
        count++;
    }
    printf("Maximum number of thread within a Process"
                                   " is : %d\n", count);
}

Producción:

Maximum number of thread within a Process is : 32754

Este artículo es una contribución de Aditya Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *