Open In App

Maximum number of threads that can be created within a process in C

Improve
Improve
Like Article
Like
Save
Share
Report


Thread of execution is the smallest sequence of programmed instructions that can be managed independently by scheduler. Thread is a component of process and so multiple threads can be associated in a process. Linux doesn’t have a separate threads per process limit, but has a limit on the total number of processes on the system (as threads just processes with a shared address space on Linux).

Our task is to find out maximum number of thread that can be created within a single process (maximum number of thread that pthread_create can create). Maximum number of threads can be seen is ubuntu by using command:

cat /proc/sys/kernel/threads-max

This thread limit for linux can be modified at runtime by writing desired limit to /proc/sys/kernel/threads-max.

Compile the following program on ubuntu operating system, to check maximum number of threads that can be created within a process in 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);
}


Output:

Maximum number of thread within a Process is : 32754


Last Updated : 26 Sep, 2017
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads