java 的线程和linux的线程并非一一对应
来源:互联网 发布:白领 男装品牌 知乎 编辑:程序博客网 时间:2024/06/07 06:38
下面来验证一下
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。
- java 的线程和linux的线程并非一一对应
- 线程、MessageQueue、Looper一一对应
- 线程的生命周期及JAVA对应函数
- java线程的通信和线程池
- java线程和线程池的使用
- java的线程和线程池
- java线程和线程组的初始化
- 会话对应的线程id
- java中线程的前台线程和后台线程
- Linux操作系统线程ID和Jvm栈线程ID对应
- 定位cpu占用过高的线程和对应的方法
- Object和Condition对应的操作线程方法
- Java的进程和线程
- Java的进程和线程
- ExtJs xtype 与空间的一一对应
- scanf的一一对应,分数转小数。
- Java线程:线程的调度-守护线程
- Java线程:线程的调度-守护线程
- UNICODE 编程入门--CString转char *
- 网络基础知识学习5-OSPF协议
- Inlay Cutters poj 2179
- 二进制文件和编码文件
- 怎么自学成为一名数据挖掘分析师?
- java 的线程和linux的线程并非一一对应
- WCF开发基础
- Opencv Python版学习笔记(六)Haar人脸检测
- Delphi基本类型--枚举 子界 集合 数组
- C语言的预编译
- The executable was signed with invalid entitlements
- iOS 获取流量
- linux shell (()) 双括号运算符使用
- lucene 4.3 中文分词代码演示