linux C 循环创建线程时,当线程数达到300个左右是,创建失败了,就无法再继续创建了.在网上查找一些资料说是:每个线程的默认内存是10240K,用 ulimit -s 可以查看到栈的默认大小为10240K。32位linux下的进程用户空间是3072M, 3072/10.24=300。
解决方法是:在线程函数里主动释放空间,pthread_detach (pthread_self());其中pthread_self()是获得线程自身的id;
linux C 循环创建线程时,当线程数达到300个左右是,创建失败了,就无法再继续创建了.在网上查找一些资料说是:每个线程的默认内存是10240K,用 ulimit -s 可以查看到栈的默认大小为10240K。32位linux下的进程用户空间是3072M, 3072/10.24=300。
解决方法是:在线程函数里主动释放空间,pthread_detach (pthread_self());其中pthread_self()是获得线程自身的id;