zoukankan      html  css  js  c++  java
  • 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++写一个线程池呢?我也不知道,再学!

    转载请注明出处:http://www.cnblogs.com/ayanmw 多谢

    ------------------------------------------------------------------------------------------------

    一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。

  • 相关阅读:
    三角函数图像平移后重合对称
    三角恒等式的证明
    三角函数给值求角
    三角方程的解法
    空间中线面位置关系的证明思路
    实时会议
    LATEX 公式总结
    三维重建的应用
    会议
    计算机图形学学习笔记
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2405731.html
Copyright © 2011-2022 走看看