Java 9 中 ProcessHandle 介面的重要性是什麼?


ProcessHandle 介面在 Java 9 中引入。它允許我們執行操作並檢查相關程序的狀態。此介面提供程序的原生程序 ID (pid)啟動時間、累積 CPU 時間、引數、命令、使用者、父程序子程序

ProcessHandle 介面允許我們執行以下操作。

  • 它返回一個包含有關程序的更多資訊的ProcessHandle.Info
  • 程序的 Pid
  • 它是否處於活動狀態
  • 檢索程序直接子程序的快照
  • 檢索程序所有後代的快照
  • 檢索所有當前正在執行的程序的快照
  • 允許銷燬程序
  • 它返回一個包含ProcessHandleCompletableFuture,用於在程序終止時。


ProcessHandle.Info 包含程序快照中的資訊,包括:

  • 程序的命令
  • 程序的引數
  • 程序的命令列
  • 程序的啟動時間
  • 程序使用的 CPU 時間
  • 程序的使用者

在下面的示例中,我們可以使用pid()方法列印當前 Process Handle 的pid,並使用isAlive()方法檢查程序當前是否正在執行。

示例

import java.util.Optional;

public class ProcessHandleTest {
   public static void main(String args[]) {
      long pid = ProcessHandle.current().pid();

      ProcessHandle currentProcess = ProcessHandle.current();
      System.out.println("PID: " + currentProcess.pid());

      Optional<ProcessHandle> processHandle = ProcessHandle.of(pid);
      boolean isAlive = processHandle.isPresent() && processHandle.get().isAlive();
      System.out.println(isAlive);
   }
}

輸出

PID: 6484
true

更新於:2020-03-13

476 次檢視

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.