winder

DB&JAVA
posts - 2, comments - 6, trackbacks - 0, articles - 11
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

linux下tomcat启动后出现多个java进程

Posted on 2008-06-27 17:43 winderain 阅读(3115) 评论(0)  编辑  收藏 所属分类: OS
偶尔发现linux下tomcat启动后出现多个java进程,如下:
000 S     0  4789     1  0  85   0    - 75083 schedu pts/1    00:00:03 java
040 S     0  4790  4789  0  75   0    - 75083 schedu pts/1    00:00:00 java
040 S     0  4791  4790  0  75   0    - 75083 schedu pts/1    00:00:03 java
040 S     0  4792  4790  0  75   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4793  4790  0  75   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4794  4790  0  78   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4795  4790  0  75   0    - 75083 rt_sig pts/1    00:00:02 java
040 S     0  4796  4790  0  78   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4797  4790  0  75   0    - 75083 schedu pts/1    00:00:00 java
040 S     0  4802  4790  0  75   0    - 75083 schedu pts/1    00:00:00 java
040 S     0  4803  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4804  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4805  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4806  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4807  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4808  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4809  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java
040 S     0  4810  4790  0  80   0    - 75083 rt_sig pts/1    00:00:00 java

大概有40多个,感觉好恐怖,在网上查了半天也没有什么结果,只是发现了主进程子进程的关系。

和做C的同事讨论后,他说发现mysql也有类似情况:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6238 mysql     25   0 49272  12m 2020 S  0.0  5.0   0:00.30 mysqld
 6239 mysql     18   0 49272  12m 2020 S  0.0  5.0   0:00.00 mysqld
 6240 mysql     25   0 49272  12m 2020 S  0.0  5.0   0:00.00 mysqld
 6241 mysql     24   0 49272  12m 2020 S  0.0  5.0   0:00.00 mysqld
 6242 mysql     24   0 49272  12m 2020 S  0.0  5.0   0:00.00 mysqld
 6243 mysql     25   0 49272  12m 2020 S  0.0  5.0   0:00.00 mysqld
 6245 mysql     18   0 49272  12m 2020 S  0.0  5.0   0:00.01 mysqld

后来查mysql多进程的时候有高手回答如下:

原来如此啊,linux的线程是通过进程实现的。

2.6内核32位系统上
gcc -static编译出来的程序
会让多线程表现成多进程的状态,出现同名多个PID
不带-static就表现为只有一个PID

64位系统,不管加不加-static,都只有一个PID
感觉32位和64位在线程的实现不一样





只有注册用户登录后才能发表评论。


网站导航: