gpt4 book ai didi

c - pthread_create 可以创建的最大线程数是多少?

转载 作者:IT王子 更新时间:2023-10-29 00:05:40 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
The thread create by pthread_create the same with the kernel thread?

我使用下面的代码来测试 pthread_create 函数可以创建的最大线程数。

#include <pthread.h>
#include <stdio.h>

static unsigned long long thread_nr = 0;

pthread_mutex_t mutex_;

void* inc_thread_nr(void* arg) {
(void*)arg;
pthread_mutex_lock(&mutex_);
thread_nr ++;
pthread_mutex_unlock(&mutex_);

/* printf("thread_nr = %d\n", thread_nr); */

sleep(300000);
}

int main(int argc, char *argv[])
{
int err;
int cnt = 0;

pthread_t pid[1000000];

pthread_mutex_init(&mutex_, NULL);

while (cnt < 1000000) {

err = pthread_create(&pid[cnt], NULL, (void*)inc_thread_nr, NULL);
if (err != 0) {
break;
}
cnt++;
}

pthread_join(pid[cnt], NULL);

pthread_mutex_destroy(&mutex_);
printf("Maximum number of threads per process is = %d\n", thread_nr);
}

输出是:

Maximum number of threads per process is = 825

那是pthread_create函数可以创建的最大线程数吗?

此外,我使用下面的命令来查看我的系统允许的最大线程数:

# cat /proc/sys/kernel/threads-max

数字是 772432。

为什么我的程序的输出不等于 threads-max 的值?

我的操作系统是 Fodaro 16,12 核,48G 内存。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com