1.通过/proc
伪文件系统
cat /proc/{pid}/status
其中Threads
后面跟的就是线程数。
或者:通过
ls /proc/{pid}/task | wc -l
2.使用top命令
具体用法是 top -H 加上这个选项,top的每一行就不是显示一个进程,而是一个线程。
top -H
top -H -p {pid}
3.使用ps命令
具体用法是 ps -xH 这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
或者使用 ps -mq PID 这样可以看到指定的进程产生的线程数目。
4.使用pstree命令
// 打印所有进程及其线程
pstree -p
// 打印某个进程的线程数
pstree -p {pid} | wc -l
5.修改某个账户的可允许的线程最大数
$ cat /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 1024 // 将此处修改成unlimited或者其他数值
root soft nproc unlimited
如果达到了系统允许的最大值,再创建线程时会报错:此时就连登陆ssh都可能登不进去
-bash: fork: retry: 没有子进程
-bash: fork: retry: 资源暂时不可用