linux最多能同时运行几个线程?
我写了程序如下:
结果创建到第306个线程时就报如下错误:
can't create thread 306: Cannot allocate memory
can't create thread 307: Cannot allocate memory
谁能帮忙解释下为什么吗?
难道同时只能运行305个线程么?
#include <stdio.h>
#include <pthread.h>
#include <string.h>
pthread_t ntid;
void *
thr_fn(void *arg)
{
pthread_detach(pthread_self());
sleep(50000);
}
#define MAXTHREAD 600
int
main(void)
{
int err;
int i;
for (i = 0; i < MAXTHREAD; i++)
{
err = pthread_create(&ntid, NULL, thr_fn, NULL);
if (err != 0)
fprintf(stderr, "can't create thread %d: %s\n", i + 1, strerror(err));
else
printf("thread %d create success\n", i + 1);
}
sleep(500000);
}
结果创建到第306个线程时就报如下错误:
can't create thread 306: Cannot allocate memory
can't create thread 307: Cannot allocate memory
谁能帮忙解释下为什么吗?
难道同时只能运行305个线程么?
#include <stdio.h>
#include <pthread.h>
#include <string.h>
pthread_t ntid;
void *
thr_fn(void *arg)
{
pthread_detach(pthread_self());
sleep(50000);
}
#define MAXTHREAD 600
int
main(void)
{
int err;
int i;
for (i = 0; i < MAXTHREAD; i++)
{
err = pthread_create(&ntid, NULL, thr_fn, NULL);
if (err != 0)
fprintf(stderr, "can't create thread %d: %s\n", i + 1, strerror(err));
else
printf("thread %d create success\n", i + 1);
}
sleep(500000);
}
...全文
相关推荐
浅析linux环境下一个进程最多能有多少个线程
以下是对在linux环境下一个进程最多能有多少个线程进行了介绍,需要的朋友可以过来参考下
详解Linux如何查看当前占用CPU或内存最多的几个进程
本篇文章主要介绍了详解Linux如何查看当前占用CPU或内存最多的几个进程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
linux c++ 守护线程,判断程序是否运行,不存在就启动
linux c++ 守护线程,判断程序是否运行,不存在就启动
linux 下 跟踪线程运行情况
linux 下 很方便的跟踪线程运行情况
Linux下的多线程编程.pdf
Linux下的多线程编程.pdf 很好的一本书,值得看一看


