Я написал программу на Java, которая некоторое время спит:
package com.mycompany.app;
import java.lang.System;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
System.out.println("the current process's pid is " + ProcessHandle.current().pid());
try {
TimeUnit.SECONDS.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Hello World!"); // Prints the string to the console.
}
}
Я запускаю программу с:
$ java -cp target com.mycompany.app.Main
the current process's pid is 10172
Я проверяю процессы, которые Ubuntu создает для запуска:
$ pstree -pau -l -G -s 10172
systemd,1 splash
└─lxterminal,3194,t
└─bash,12150
└─java,10172 -cp target com.mycompany.app.Main
├─{java},10173
├─{java},10174
├─{java},10175
├─{java},10176
├─{java},10177
├─{java},10178
├─{java},10179
├─{java},10180
├─{java},10181
├─{java},10182
├─{java},10183
├─{java},10184
├─{java},10185
├─{java},10186
├─{java},10187
├─{java},10188
├─{java},10189
└─{java},10190
- Для чего созданы те потоки (то есть облегченные процессы) с именем
{java}
? - Можно ли узнать, какие программы они запускают из оболочки, используя некоторые команды?
- Какие процессы (и LWP) выполняют JVM?
- Какие процессы (и LWP) выполняют мою Java-программу?