linux下多线程的问题

shmylm4201 2017-11-08 11:11:32
首先我使用如下的方式查看单进程下的最大线程数是64
cat /usr/include/bits/local_lim.h


/* The number of threads per process. */
#define _POSIX_THREAD_THREADS_MAX 64
/* We have no predefined limit on the number of thre ads. */
#undef PTHREAD_THREADS_MAX


但是我实际写一个小的测试程序 不断的创建线程,最大可以创建32757个线程,不是应该只能创建64个吗?
这个具体该怎么理解,希望有人解惑,谢谢!
...全文
259 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxuyayaya23 2017-11-09
  • 打赏
  • 举报
回复
引用 2楼勤奋的沉沦 的回复:
注意这段注释: /* We have no predefined limit on the number of threads. */ 另外,Linux的线程数有限制: 1. 操作系统内核支持的数量; 2. 每一个线程都是要占用内存的,一个进程占用的内存通常是有限制的。 可以通过ulimit -a查看。 3. 系统总内存是有限制的。
奔驰
勤奋的沉沦 2017-11-08
  • 打赏
  • 举报
回复
注意这段注释: /* We have no predefined limit on the number of threads. */ 另外,Linux的线程数有限制: 1. 操作系统内核支持的数量; 2. 每一个线程都是要占用内存的,一个进程占用的内存通常是有限制的。 可以通过ulimit -a查看。 3. 系统总内存是有限制的。
小竹z 2017-11-08
  • 打赏
  • 举报
回复
我的理解是,_POSIX_THREAD_THREADS_MAX这个宏是posix标准要求定义的,但是这个宏并没有在linux系统中有效,一般创建的线程数据跟系统可用的内存有关

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧