java 命令 查看线程_【Java】如何查看某一Java进程中,当前有多少线程正在执行?...

我们先看一个最古老的多线程实现的服务端

public classSocketThread {public static voidmain(String[] args) throws IOException {

ServerSocket serverSocket= new ServerSocket(9889);while (true) {

Socket client=serverSocket.accept();new Thread(() ->{try{

System.out.println("client port :" +client.getPort());

InputStream inputStream=client.getInputStream();

BufferedReader bufferedReader= new BufferedReader(newInputStreamReader(inputStream));while (true) {

System.out.println(bufferedReader.readLine());

}

}catch(IOException e) {

e.printStackTrace();

}

}).start();

}

}

}

strace指令查看:

我们用【strace】指令检测一下:

-o:输出 到某个路径

-ff: 抓取这个程序所有线程

[root@bogon thread]# strace -ff -o /root/data/thread-group/ooxx java SocketThread //程序对内核有没有发生什么系统调用

然后可以再thread-group目录中看到线程详情:

jps进行查看

首先用【jps】指令查看一下进程详情:

[root@bogon thread-group]# jps12485Jps12475 Loop

然后我们进入【Loop】进程,继续深入:

[root@bogon thread-group]# cd /proc/12475[root@bogon12475]# ls

attr comm fd map_files net pagemap schedstat statm wchan

autogroup coredump_filter fdinfo maps ns patch_state sessionid status

auxv cpuset gid_map mem numa_maps personality setgroups syscall

cgroup cwd io mountinfo oom_adj projid_map smaps task

clear_refs environ limits mounts oom_score root stack timers

cmdline exe loginuid mountstats oom_score_adj sched stat uid_map

1》然后我们进入【task】目录,可以看到线程详情:

[root@bogon 12475]# cd task/[root@bogon task]# ls12475 12476 12477 12478 12479 12480 12481 12482 12483 12484[root@bogon task]# ll

total0dr-xr-xr-x. 7 root root 0 May 27 10:08 12475dr-xr-xr-x. 7 root root 0 May 27 10:08 12476dr-xr-xr-x. 7 root root 0 May 27 10:08 12477dr-xr-xr-x. 7 root root 0 May 27 10:08 12478dr-xr-xr-x. 7 root root 0 May 27 10:08 12479dr-xr-xr-x. 7 root root 0 May 27 10:08 12480dr-xr-xr-x. 7 root root 0 May 27 10:08 12481dr-xr-xr-x. 7 root root 0 May 27 10:08 12482dr-xr-xr-x. 7 root root 0 May 27 10:08 12483dr-xr-xr-x. 7 root root 0 May 27 10:08 12484

2》也可以进入【fd】目录

以数字为文件描述符名字的文件

我们新开一个界面,可以用【nc】模拟一次客户端请求:

[root@bogon ~]# nc 192.168.33.10 9889

此时可以看到连接情况的变化:

服务端会打印出客户端连接进入的信息(此处我重新连了一下,所以和上述端口会产生不一致):

1》客户端发送:

2》服务端接收:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值