Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมธอดใหม่ที่เพิ่มเข้ามาใน Process API ของ Java 9

Process API Improvements ใน Java 9

Java 9 ปรับปรุงคลาส Process เพิ่มเมธอดใหม่ และเพิ่ม interface ProcessHandle และ ProcessHandle.Info สำหรับจัดการ process ของ OS

เมธอดใหม่ใน Process Class

  • boolean supportsNormalTermination() - true ถ้า destroy() ทำ normal termination
  • long pid() - คืน native process ID
  • ProcessHandle toHandle() - คืน ProcessHandle สำหรับ process นี้
  • Stream<ProcessHandle> children() - snapshot ของ child processes โดยตรง
  • Stream<ProcessHandle> descendants() - snapshot ของ descendant processes ทั้งหมด
  • ProcessHandle.Info info() - snapshot ข้อมูลของ process
  • CompletableFuture<ProcessHandle> onExit() - CompletableFuture สำหรับ termination

ตัวอย่างการใช้งาน

public class ProcessTest {
    public static void main(String args[]) {
        ProcessHandle processHandle = ProcessHandle.current();
        ProcessHandle.Info processInfo = processHandle.info();
        System.out.println(processHandle.pid());
        System.out.println(processHandle.parent());
        System.out.println(processInfo.arguments().isPresent());
        System.out.println(processInfo.command().isPresent());
        System.out.println(processInfo.command().get().contains("tutorialspoint"));
        System.out.println(processInfo.startInstant().isPresent());
    }
}

Output

4892 Optional[7788] false true false true

ProcessHandle และ ProcessHandle.Info

  • ProcessHandle - ระบุและควบคุม native process, ตรวจสอบ liveness, destroy process
  • ProcessHandle.Info - ข้อมูล snapshot: command, arguments, start time, CPU time, user, etc.

สรุป

Process API ใน Java 9 ทำให้จัดการ OS processes ได้ง่ายและครบครันขึ้นมาก ไม่ต้องพึ่ง native code หรือ library ภายนอก