linux多线程 测时间,Linux 下多线程进程的检测方法

本文介绍了如何通过检查Linux系统的/proc/PID/task目录下的子目录数量来判断一个程序进程是单线程还是多线程。通过示例对比wget(单线程)和prozilla(多线程)的进程信息,验证了这种方法的有效性。
摘要由CSDN通过智能技术生成

引言

之前说到在 Linux 下使用 prozilla 进行下载加速,

其中一个原因就是 prozilla 是多线程程序,可以同时打开多个连接,而 wget 不是一个多线程的程序。

我多想了一下,那怎么判断一个程序进程是单线程还是多线程的?

根据 /proc/PID/task 下子目录个数来判断一个程序进程是否是多线程

下面来进行测试验证下:

1、使用 wget 下载一个文件,相关输出如下:

[root@iZ25p102vo3Z ~]# ps -ef | grepwget

root 31644 31570 0 15:10 pts/0 00:00:00 wget --limit-rate=20k http://xxx.xx

root 31646 31612 0 15:10 pts/2 00:00:00 grep --color=auto wget

[root@iZ25p102vo3Z ~]# ll /proc/31644/task

total 0

dr-xr-xr-x 6 root root 0 Feb 25 15:10 31644

可以看到/proc/31644/task/下只有一个目录,验证了 wget 是一个单线程程序。

2、使用 prozilla 下载一个文件,开启 10 个线程,相关输出如下:

[root@iZ25p102vo3Z ~]# ps -ef | grepproz

root 31659 31570 0 15:17 pts/0 00:00:00 proz -k=10 -f --max-bps=102400 http://xxx.xx

root 31686 31612 0 15:18 pts/2 00:00:00 grep --color=auto proz

[root@iZ25p102vo3Z ~]# ll /proc/31659/task/

total 0

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31659

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31667

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31668

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31669

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31670

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31671

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31672

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31673

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31674

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31675

dr-xr-xr-x 6 root root 0 Feb 25 15:18 31676

可以看到/proc/31659/task/下有多个目录,验证了 prozilla 是一个多线程程序。

使用 ps -efL 命令

Ref

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值