Htop and top showing multiple process instances?

I am currently running a java process with ant. I perform only one process.

When I use htop, I see the following information:

enter image description here

Scrolling to the right gives: enter image description here

basically, the middle part consists of just my java process.

When I do ps aux | grep java, I see:

$ ps aux | grep java
victor   27982  1.0  1.9 3799504 163112 pts/1  Sl+  02:00   0:06 /usr/bin/java -classpath /usr/share/ant/lib/ant-launcher.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/xercesImpl.jar -Dant.home=/usr/share/ant -Dant.library.dir=/usr/share/ant/lib org.apache.tools.ant.launch.Launcher -cp  tag
victor   28003 19.0  6.6 3523136 544812 pts/1  Sl+  02:00   1:51 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java -Xmx2048m -classpath /home/victor/Giordano/java/lib/commons-math3-3.0.jar:/home/victor/Giordano/java/lib/guava-14.0.1.jar:/home/victor/Giordano/java/lib/joda-time-2.2.jar:/home/victor/Giordano/java/lib/postgresql-9.2-1002.jdbc4.jar -jar /home/victor/Giordano/java/build/jar/Giordano.jar 15
victor   28135  0.0  0.0   9388   924 pts/3    R+   02:10   0:00 grep --color=auto java

Any idea why there are so many instances of my process in htop?

FYI I work on a quad machine.

This is my build file if any of you are interested.

<project name="Giordano" basedir="." default="main">

  <!-- Keep Eclipse bin away from our build, use separate folder -->
  <property name="build.dir" value="build" />
  <property name="src.dir" value="src" />
  <property name="lib.dir" value="lib" />
  <property name="classes.dir" value="${build.dir}/classes" />
  <property name="jar.dir" value="${build.dir}/jar" />

  <!-- Main Classes for different processes -->
  <property name="like.main.class" value="com.crowdy.learn.SimilarityLike" />
  <property name="model.main.class" value="com.crowdy.learn.SimilarityModel" />
  <property name="tag.main.class" value="com.crowdy.learn.SimilarityTag" />

  <path id="lib.path">
    <fileset dir="${lib.dir}">
      <include name="*.jar" />
    </fileset>
  </path>

  <target name="clean">
    <delete dir="${build.dir}" />
  </target>

  <target name="compile">
    <mkdir dir="${classes.dir}" />
    <javac srcdir="${src.dir}" destdir="${classes.dir}">
      <classpath refid="lib.path" />
    </javac>
  </target>

  <target name="main">
    <echo>ant is not defined. Use ant like, ant tag or ant model.</echo>
  </target>

  <!-- Running Like -->
  <target name="like" depends="clean,like.run" />

  <!-- Ant properties are not mutable.
       So if we have -Ddb=xyz passed in via cmd line then this will not be defined. -->
  <property name="simThreshold" value="0.05"/>
  <property name="minFeedback" value="40"/>

  <target name="like.jar" depends="compile">
    <mkdir dir="${jar.dir}" />
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
      <manifest>
        <attribute name="Main-Class" value="${like.main.class}" />
      </manifest>
      <fileset dir="${classes.dir}" includes="**/*.class" />
      <zipgroupfileset dir="${lib.dir}" includes="**/*.jar" />
    </jar>
  </target>

  <target name="like.run" depends="like.jar">
    <echo>SETTING parameter simThreshold to ${simThreshold}</echo>
    <echo>SETTING parameter minFeedback to ${minFeedback}</echo>
    <java jar="${jar.dir}/${ant.project.name}.jar" fork="true" maxmemory="1024m">
      <classpath refid="lib.path" />
      <arg value="${simThreshold}" />
      <arg value="${minFeedback}" />
    </java>
  </target>

  <!-- Running Model -->
  <target name="model" depends="clean,model.run" />
  <property name="minFeedbackCount" value="15"/>

  <target name="model.jar" depends="compile">
    <mkdir dir="${jar.dir}" />
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
      <manifest>
        <attribute name="Main-Class" value="${model.main.class}" />
      </manifest>
      <fileset dir="${classes.dir}" includes="**/*.class" />
      <zipgroupfileset dir="${lib.dir}" includes="**/*.jar" />
    </jar>
  </target>

  <target name="model.run" depends="model.jar">
    <java jar="${jar.dir}/${ant.project.name}.jar" fork="true" maxmemory="1024m">
      <classpath refid="lib.path" />
      <arg value="${minFeedbackCount}" />
    </java>
  </target>

  <!-- Running Tag -->
  <target name="tag" depends="clean,tag.run" />
  <property name="minTagCount" value="20"/>

  <target name="tag.jar" depends="compile">
    <mkdir dir="${jar.dir}" />
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
      <manifest>
        <attribute name="Main-Class" value="${tag.main.class}" />
      </manifest>
      <fileset dir="${classes.dir}" includes="**/*.class" />
      <zipgroupfileset dir="${lib.dir}" includes="**/*.jar" />
    </jar>
  </target>

  <target name="tag.run" depends="tag.jar">
    <java jar="${jar.dir}/${ant.project.name}.jar" fork="true" maxmemory="1024m">
      <classpath refid="lib.path" />
      <arg value="${minTagCount}" />
    </java>
  </target>

</project>
+5
source share
2 answers

Htop also shows topics. I think that all these processes are threads created by your application. If you do not want to see them, press shift + H.

+7
source

fork attribute java task Java/VM, . Ant java:
.. "
if enabled triggers the class execution in another VM (disabled by default)
.. "

, fork = true java-.

0

All Articles