查看java进程

本文介绍了一个使用Java创建固定数量线程池的例子,并通过ps-ef|grep java-c命令统计Java进程的数量。同时展示了如何利用top命令查看指定Java进程内的线程状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ps -ef | grep java
ps -ef | grep java -c 统计java 的进程数

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class TestPS_EF {

public static void main(String[] args) {
String i = args[0];

int j = Integer.valueOf(i);

ExecutorService s = Executors.newFixedThreadPool(j);

for(int k=0;k<j;k++){
s.execute(new Runnable(){

@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" start");
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" end");

}

});
}

s.shutdown();

}

}


运行上述代码, 再执行ps -ef | grep java -c , 进程总数加一。


ehanmqi 45556 45519 1 2015 pts/17 05:51:48 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java -Xms128m -Xmx1024m -Dsoapui.properties=soapui.properties -Dsoapui.home=/root/PGCATemp/SoapUI-5.0.0/bin -splash:soapui-splash.png -Dsoapui.ext.libraries=/root/PGCATemp/SoapUI-5.0.0/bin/ext -Dsoapui.ext.listeners=/root/PGCATemp/SoapUI-5.0.0/bin/listeners -Dsoapui.ext.actions=/root/PGCATemp/SoapUI-5.0.0/bin/actions -Djava.library.path=/root/PGCATemp/SoapUI-5.0.0/bin -Dwsi.dir=/root/PGCATemp/SoapUI-5.0.0/wsi-test-tools -cp /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre/lib/jfxrt.jar:/root/PGCATemp/SoapUI-5.0.0/bin/soapui-5.0.0.jar:/root/PGCATemp/SoapUI-5.0.0/lib/* com.eviware.soapui.SoapUI
# ps 45519
PID TTY STAT TIME COMMAND
45519 pts/17 S+ 0:00 /bin/sh ./soapui_1.sh
# ps 45556
PID TTY STAT TIME COMMAND
45556 pts/17 Sl+ 351:50 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java -Xms128m -Xmx1024m -Dsoapui.properties=soapui.properties -Dsoapui.home=/root/PGCATemp
#


要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:
$ top -H -p <pid>


root 15152 12835 1 12:26 pts/129 00:00:00 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java TestPS_EF2 10
# /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/jstack 15152
2016-01-15 12:26:33
Full thread dump OpenJDK 64-Bit Server VM (23.2-b09 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007f17f4001000 nid=0x3b9c waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"DestroyJavaVM" prio=10 tid=0x00007f1898008000 nid=0x3b31 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Thread-9" prio=10 tid=0x00007f189817c000 nid=0x3b71 waiting on condition [0x00007f18428e7000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-8" prio=10 tid=0x00007f189817a000 nid=0x3b70 waiting on condition [0x00007f18429e8000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-7" prio=10 tid=0x00007f1898178000 nid=0x3b6f waiting on condition [0x00007f1842ae9000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-6" prio=10 tid=0x00007f1898176000 nid=0x3b6d waiting on condition [0x00007f1842bea000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-5" prio=10 tid=0x00007f1898174000 nid=0x3b6b waiting on condition [0x00007f1842ceb000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-4" prio=10 tid=0x00007f1898172000 nid=0x3b69 waiting on condition [0x00007f1842dec000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-3" prio=10 tid=0x00007f1898170000 nid=0x3b68 waiting on condition [0x00007f1842eed000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-2" prio=10 tid=0x00007f189816d800 nid=0x3b64 waiting on condition [0x00007f1842fee000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-1" prio=10 tid=0x00007f189816b800 nid=0x3b63 waiting on condition [0x00007f18430ef000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Thread-0" prio=10 tid=0x00007f189816a000 nid=0x3b62 waiting on condition [0x00007f18431f0000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at TestPS_EF2$1.run(TestPS_EF2.java:14)
at java.lang.Thread.run(Thread.java:722)

"Service Thread" daemon prio=10 tid=0x00007f1898135800 nid=0x3b59 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007f1898133000 nid=0x3b58 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007f1898130000 nid=0x3b57 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007f189812e000 nid=0x3b55 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007f18980d8800 nid=0x3b54 in Object.wait() [0x00007f18437f6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000006b0ab5728> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000006b0ab5728> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

"Reference Handler" daemon prio=10 tid=0x00007f18980d6000 nid=0x3b53 in Object.wait() [0x00007f18438f7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000006b0ab52b0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x00000006b0ab52b0> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00007f18980cd800 nid=0x3b52 runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f1898015800 nid=0x3b32 runnable

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f1898017800 nid=0x3b33 runnable

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f1898019800 nid=0x3b34 runnable

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f189801b000 nid=0x3b36 runnable

"GC task thread#4 (ParallelGC)" prio=10 tid=0x00007f189801d000 nid=0x3b38 runnable

"GC task thread#5 (ParallelGC)" prio=10 tid=0x00007f189801f000 nid=0x3b39 runnable

"GC task thread#6 (ParallelGC)" prio=10 tid=0x00007f1898020800 nid=0x3b3a runnable

"GC task thread#7 (ParallelGC)" prio=10 tid=0x00007f1898022800 nid=0x3b3b runnable

"GC task thread#8 (ParallelGC)" prio=10 tid=0x00007f1898024800 nid=0x3b41 runnable

"GC task thread#9 (ParallelGC)" prio=10 tid=0x00007f1898026000 nid=0x3b43 runnable

"GC task thread#10 (ParallelGC)" prio=10 tid=0x00007f1898028000 nid=0x3b45 runnable

"GC task thread#11 (ParallelGC)" prio=10 tid=0x00007f189802a000 nid=0x3b46 runnable

"GC task thread#12 (ParallelGC)" prio=10 tid=0x00007f189802c000 nid=0x3b47 runnable

"GC task thread#13 (ParallelGC)" prio=10 tid=0x00007f189802d800 nid=0x3b48 runnable

"GC task thread#14 (ParallelGC)" prio=10 tid=0x00007f189802f800 nid=0x3b49 runnable

"GC task thread#15 (ParallelGC)" prio=10 tid=0x00007f1898031800 nid=0x3b4a runnable

"GC task thread#16 (ParallelGC)" prio=10 tid=0x00007f1898033000 nid=0x3b4b runnable

"GC task thread#17 (ParallelGC)" prio=10 tid=0x00007f1898035000 nid=0x3b4c runnable

"GC task thread#18 (ParallelGC)" prio=10 tid=0x00007f1898037000 nid=0x3b4d runnable

"GC task thread#19 (ParallelGC)" prio=10 tid=0x00007f1898038800 nid=0x3b4e runnable

"GC task thread#20 (ParallelGC)" prio=10 tid=0x00007f189803a800 nid=0x3b4f runnable

"GC task thread#21 (ParallelGC)" prio=10 tid=0x00007f189803c800 nid=0x3b50 runnable

"GC task thread#22 (ParallelGC)" prio=10 tid=0x00007f189803e000 nid=0x3b51 runnable

"VM Periodic Task Thread" prio=10 tid=0x00007f1898140000 nid=0x3b5f waiting on condition

JNI global references: 109

#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值