📜  在C中的进程中可以创建的最大线程数

📅  最后修改于: 2021-05-26 03:16:10             🧑  作者: Mango

执行线程是可以由调度程序独立管理的已编程指令的最小序列。线程是流程的组成部分,因此可以在一个流程中关联多个线程。 Linux对每个进程没有单独的线程限制,但是对系统上的进程总数有限制(因为线程只是Linux上具有共享地址空间的进程)。

我们的任务是找出可以在单个进程中创建的最大线程数(pthread_create可以创建的最大线程数)。使用以下命令可以看到最大线程数是ubuntu:

cat /proc/sys/kernel/threads-max

可以在运行时通过将所需的限制写入/ proc / sys / kernel / threads-max来修改Linux的线程限制。

在ubuntu操作系统上编译以下程序,以检查可以在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
#include
  
// 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);
}

输出:

Maximum number of thread within a Process is : 32754
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。