下面来验证一下
Hello.java
import java.lang.Runnable;
import java.lang.Thread;
public class Hello implements Runnable{
public void run() {
while(true) {
try{
Thread.sleep(100);
}catch(Exception e){
e.printStackTrace();
}
System.out.println("I'm ok");
}
}
public static void main(String []args){
new Thread(new Hello()).start();
new Thread(new Hello()).start();
}
}
启动程序以后,在java虚拟机中将产生两个线程(主线程结束以后)
而在linux中查看的结果如下:
可见在linux中对应的是11个线程,我猜测这是因为java 虚拟机本身也要使用大量线程,如垃圾回收等等。
aotian@aotian-laptop:~/test/java_test$ ps -ef | grep java
aotian 2605 2328 0 09:37 pts/0 00:00:06 java Hello
aotian 2879 2618 0 09:51 pts/1 00:00:00 grep --color=auto java
aotian@aotian-laptop:~/test/java_test$ ps -o nlwp,lwp,pid,lstart,cmd -Lp 2605
NLWP LWP PID STARTED CMD
11 2605 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2606 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2607 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2608 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2609 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2610 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2611 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2612 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2613 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2614 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2615 2605 Wed Jul 3 09:37:12 2013 java Hello
aotian 2605 2328 0 09:37 pts/0 00:00:06 java Hello
aotian 2879 2618 0 09:51 pts/1 00:00:00 grep --color=auto java
aotian@aotian-laptop:~/test/java_test$ ps -o nlwp,lwp,pid,lstart,cmd -Lp 2605
NLWP LWP PID STARTED CMD
11 2605 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2606 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2607 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2608 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2609 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2610 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2611 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2612 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2613 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2614 2605 Wed Jul 3 09:37:12 2013 java Hello
11 2615 2605 Wed Jul 3 09:37:12 2013 java Hello
十分有趣的是,当我把java虚拟中的线程增加到3个时,linux中对应的线程数变为12。