❶ linux能同时启动多少个线程
默认情况下:
主线程+辅助线程 +<253个自己的线程<=255
含主线程和一个辅助线程,最多255个,即一个用户只能生成253个线程。
Linux最大线程数限制及当前线程数查询:
1、总结系统限制有:
/proc/sys/kernel/pid_max #查系统支持的最大线程数,一般会很大,相当于理论值
/proc/sys/kernel/thread-max
max_user_process(ulimit -u) #系统限制某用户下最多可以运行多少进程或线程
/proc/sys/vm/max_map_count
硬件内存大小
2、java虚拟机本身限制:
-Xms #intial java heap size
-Xmx #maximum java heap size
-Xss #the stack size for each thread
3、查询当前某程序的线程或进程数
pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l 或 pstree -p 3660 | wc -l
4、查询当前整个系统已用的线程或进程数
pstree -p | wc -l
1、 cat /proc/${pid}/status
2、pstree -p ${pid}
3、top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid}
top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
4、ps xH
手册中说:H Show threads as if they were processes
这样可以查看所有存在的线程。
5、ps -mp <PID>
手册中说:m Show threads after processes
这样可以查看一个进程起的线程数。
❷ Linux系统如何查看进程的线程数
Linux系统查看某个进程的线程数可以通过ps命令来进行查询。以firefox进程为例。
1、查看firefox的进程pid,如下图所示,firefox的进程pid为3168。
2、查看firefox中的线程数和线程ID,如下图所示,
其中NLWP
列为线程数
LWP列为线程ID,可见firefox有线程数50。
❸ linux中一个进程的最大线程数量是多少
linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX
这个限制可以在 /usr/include/bits/local_lim.h 中查看关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html
对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源
这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大小,一般情况下,这个值是 8M
❹ Linux 如何查看线程数最佳解决方案
1、top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
2、ps xH
手册中说:H Show threads as if they were processes
这样可以查看所有存在的线程。
3、ps -mp <PID>
手册中说:m Show threads after processes
这样可以查看一个进程起的线程数。
更多详尽的解释还可以man ps,man top。
需要解决更多linux问题,详情请看 http://www.linuxprobe.com/chapter-00.html
望采纳!
❺ Linux 怎么增大可以创建的最大线程数
检查ulimit -a 的结果,查看stack size:
stack size (kbytes, -s) 8192
8192KB 就是栈的大小。不能超过这个栈的数目,因此上面2)分配的buf大小超过了栈限制,得到了setmentation fault。
LInux上,最大线程数目是:
number of threads = total virtual memory / (stack size*1024*1024)
在32位系统上,进程空间是4G,其中0-3G是用户空间(0x0-0xBFFFFFFF), 3G-4G是内核空间。
因此理论上讲,用户空间大小/栈大小=最大线程数。3072M/8M=384,考虑到系统的占用,主线程等,我的系统上是380. 也许在你的系统上是382.
我们可以减小栈限制或者增大虚拟内存使得线程的数目增加。
检查虚拟内存: ulimit -v
检查栈大小: ulimit -s
设置虚拟内存:ulimit -v 新值
设置栈大小: ulimit -s 新值