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
-
JavaでのSwingWorkerクラスの重要性は何ですか?
SwingWorker クラスを使用すると、非同期を実行できます タスク ワーカースレッド(長時間実行タスクなど)で、イベントディスパッチスレッド(EDT )からSwingコンポーネントを更新します。 ) タスクの結果に基づきます。 Java1.6バージョンで導入されました。 SwingWorkerクラス java.swing.SwingWorker クラスはタスクワーカーであり、時間のかかるタスクをバックグラウンドで実行します。 SwingWorker インスタンスは3つのスレッドと相互作用します。現在 スレッド 、ワーカースレッド 、およびイベントディスパッチスレッド(E
-
JavaでのSwingUtilitiesクラスの重要性は何ですか?
Javaでは、Swingコンポーネントが画面に表示された後、それらはイベント処理スレッドと呼ばれる1つのスレッドでのみ操作できます。 。別のブロックにコードを記述し、このブロックにイベントへの参照を与えることができます 処理 スレッド 。 SwingUtilities クラスには、 invokeAndWait()という2つの重要な静的メソッドがあります。 およびinvokeLater() コードのブロックへの参照をイベントに配置するために使用します キュー 。 構文 public static void invokeAndWait(Runnable doRun) throws Interr