1。 使用top命令,具体用法是 top -H加上这个选项,top的每一行就不是显示一个进程,而是一个线程。
2。 使用ps命令,具体用法是 ps -xH
这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。
3。 使用ps命令,具体用法是 ps -mq PID
这样可以看到指定的进程产生的线程数目。
更进一步,其实一些系统监控工具,在本质上也是读取的系统产生的文件罢了。比如说进程这个事情,
看看这个目录吧,/proc/5000/ 这里面有你所有想要的。其实stat代表着当前的一些信息。
使用ps命令来查看进程的时候,进程状态分别对应的含义如下:
D 不可中断睡眠 (通常是在IO *** 作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
R 正在运行或可运行(在运行队列排队中)
S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
W 正在换页(26内核之前有效)
X 死进程 (未开启)
Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的
< 高优先级(not nice to other users)
N 低优先级(nice to other users)
L 页面锁定在内存(实时和定制的IO)
s 一个信息头
l 多线程(使用 CLONE_THREAD,像NPTL的pthreads的那样)
+ 在前台进程组
Linux系统查看某个进程的线程数可以通过ps命令来进行查询。以firefox进程为例。
1、查看firefox的进程pid,如下图所示,firefox的进程pid为3168。
2、查看firefox中的线程数和线程ID,如下图所示,
其中NLWP
列为线程数
LWP列为线程ID,可见firefox有线程数50。
线程: 程序运行流的最小单元,一个程序是有一个或多个线程组成。 作用: cpu线程越多,程序运行越快,或者可以同时运行的程序越多。换句话说,cpu线程越多电脑越不容易卡。同时,CPU支持的线程数越多,说明它的性能越强。
步骤:
1、先右击鼠标右键点击屏幕最下方的任务栏空白处,会d出一个菜单,在菜单中用鼠标左键点击启动任务管理器。
2、然后点击任务管理器的“性能”选项。在“性能”选项的“cpu使用记录”项中有几个方框就说明cpu有几个线程。
cpu线程数不一定等于cpu的核心数,因为有些cpu采用了超线程技术,一个核心可以有两个线程。
3、如果想查看cpu的核心数可以安装一个CPU-Z软件,打开后就可以看见有几个核心和线程。
4、打开安装的CPU-Z软件,在处理器即可看到核心数和线程数。
PS:超线程处理器的cpu线程数不等于cpu的核心数。cpu线程数不一定等于cpu的核心数,因为有些cpu采用了超线程技术,一个核心可以有两个线程。
32为linux系统最大内存地址4G,0-3GB的给用户进程(User Space)使用,3-4GB给内核使用
stack size (kbytes, -s) 10240表示线程堆栈大小
3G/10M=最大线程数,但实际会比这个数小一点,因为程序本身占内存,还有些管理线程
可以使用ulimit -s来设置stack size,设置的小一点开辟的线程就多。
同时/usr/include/bits/local_limh中的PTHREAD_THREADS_MAX限制了进程的最大线程数
/proc/sys/kernel/threads-max中限制了系统的最大线程数
你自己写个简单的代码就能测试出自己系统最大可以开多少线程
#include <unistdh>#include <stdlibh>
#include <pthreadh>
#include <stdioh>
void foo(void param)
{
}
int main()
{
int i = 0;
pthread_t thread;
while(1)
{
if(pthread_create(&thread,NULL,foo,NULL) != 0)
break;
i++;
}
printf("i=%d\n",i);
return 0;
}
打开任务管理器, 查看---选择列----线程数 勾起来后,就可以查看到每个程序的线程数了。
或者
using SystemDiagnostics;
ProcessGetCurrentProcess()ThreadsCount;
可获取到线程的数量。
获取正在使用的线程数量:
int n = 0;
foreach (ProcessThread th in ProcessGetCurrentProcess()Threads)
{
if (thThreadState == ThreadStateRunning)
{
n++;
}
}
以上就是关于linux 怎么查看一个进程的所有线程全部的内容,包括:linux 怎么查看一个进程的所有线程、Linux系统如何查看进程的线程数、怎样得到一个应用程序里的线程数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)