Linux线程之线程池、高并发、线程数 C/C++ pthread 函数库

高并发的C ++程序,有一个问题就是 最多能有多少线程数?本以为Linux下会有ulimit的限制呢,看了看,没有。可能对于线程数 还真没有限制,比如进程好像是65535个进程数吧(PID的范围);所以写个小程序来看看Linux下C/C++能开多少线程数。

#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define MAX_TEST_THREAD 500000
void * handle(void *data){
sleep(100);
pthread_exit(NULL);
}

int main(){
pthread_t pid;
int i=0;
printf("Now %d threads will be create!\n",MAX_TEST_THREAD);
for(;i<MAX_TEST_THREAD;i++){
pthread_create(&pid,NULL,handle,NULL);
}
printf("Thread have been created!\n");
sleep(1);
exit(0);
}

五万个线程创建时间大约有1-2秒,根据各个计算机配置不同,这个值可能也不同的。50万大约十秒多(关于时间,我是自己估算的,没有写到程序中,只是临时测试而已)。100万大约20秒多。

所以在高并发的程序中,线程的创建和销毁会费时间的。所以就有了线程池的概念。

如何用C/C++写一个线程池呢?我也不知道,再学!

原文链接: https://www.cnblogs.com/ayanmw/archive/2012/03/19/2405731.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Linux线程之线程池、高并发、线程数 C/C++ pthread 函数库

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/44526

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午9:10
下一篇 2023年2月8日 下午9:10

相关推荐