Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のProcessHandleインターフェースの重要性は何ですか?


ProcessHandle Java 9で導入されたインターフェース。これにより、アクションを実行し、関連するプロセスの状態を確認できます。このインターフェースは、プロセスのネイティブプロセスID(pid)を提供します 、開始時間、累積CPU時間、引数、コマンド、ユーザー、親プロセス、 および子孫

ProcessHandle インターフェースを使用すると、次のアクションを実行できます。

  • ProcessHandle.Infoを返します プロセスに関する詳細情報が含まれています
  • プロセスのPid
  • 生きている場合
  • プロセスの直接の子のスナップショットを取得します
  • プロセスのすべての降下のスナップショットを取得します
  • 現在実行中のすべてのプロセスのスナップショットを取得します
  • プロセスの破棄を許可する
  • CompletableFutureを返します ProcessHandleを使用 プログレスが終了したときのために


ProcessHandle.Inf o プロセスのスナップショットからの情報を保持します:

  • プロセスのコマンド
  • プロセスの議論
  • プロセスのコマンドライン
  • プロセスの開始時間
  • プロセスで使用されるCPU時間
  • プロセスのユーザー

以下の例では、 pidを印刷できます。 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

  1. JavaでのSwingWorkerクラスの重要性は何ですか?

    SwingWorker クラスを使用すると、非同期を実行できます タスク ワーカースレッド(長時間実行タスクなど)で、イベントディスパッチスレッド(EDT )からSwingコンポーネントを更新します。 ) タスクの結果に基づきます。 Java1.6バージョンで導入されました。 SwingWorkerクラス java.swing.SwingWorker クラスはタスクワーカーであり、時間のかかるタスクをバックグラウンドで実行します。 SwingWorker インスタンスは3つのスレッドと相互作用します。現在 スレッド 、ワーカースレッド 、およびイベントディスパッチスレッド(E

  2. JavaでのSwingUtilitiesクラスの重要性は何ですか?

    Javaでは、Swingコンポーネントが画面に表示された後、それらはイベント処理スレッドと呼ばれる1つのスレッドでのみ操作できます。 。別のブロックにコードを記述し、このブロックにイベントへの参照を与えることができます 処理 スレッド 。 SwingUtilities クラスには、 invokeAndWait()という2つの重要な静的メソッドがあります。 およびinvokeLater() コードのブロックへの参照をイベントに配置するために使用します キュー 。 構文 public static void invokeAndWait(Runnable doRun) throws Interr