Concurrency Orta

ProcessHandle ile işletim sistemi süreçlerini inceleyin ve yönetin.

✕ Java 8
Process p = Runtime.getRuntime()
    .exec("ls -la");
int code = p.waitFor();
// no way to get PID
// no easy process info
✓ Java 9+
ProcessHandle ph =
    ProcessHandle.current();
long pid = ph.pid();
ph.info().command()
    .ifPresent(IO::println);
ph.children().forEach(
    c -> IO.println(c.pid()));
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🔍

Tam bilgi

PID, komut, argümanlar, başlangıç zamanı, CPU kullanımına erişin.

🌳

Süreç ağacı

Üst, alt ve torun süreçlerde gezinin.

📊

İzleme

onExit() asenkron izleme için bir CompletableFuture döndürür.

Eski Yaklaşım
Runtime.exec()
Modern Yaklaşım
ProcessHandle
JDK'dan itibaren
9
Zorluk
Orta
Modern Process API
Mevcut

JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)

ProcessHandle; PID'leri, süreç bilgilerini (komut, argümanlar, başlangıç zamanı, CPU kullanımı), üst/alt ilişkilerini ve süreç sonlandırmayı sağlar. Artık belgelenmemiş Process iç kısımlarına gerek yok.

Paylaş 𝕏 🦋 in