প্রসেসহ্যান্ডেল জাভা 9-এ ইন্টারফেস চালু করা হয়েছে। এটি আমাদের ক্রিয়া সম্পাদন করতে এবং সম্পর্কিত একটি প্রক্রিয়ার অবস্থা পরীক্ষা করতে দেয়। এই ইন্টারফেস প্রক্রিয়াটির নেটিভ প্রসেস আইডি (পিড) প্রদান করে , শুরু করার সময়, জমা হওয়া CPU সময়, আর্গুমেন্ট, কমান্ড, ব্যবহারকারী, অভিভাবক প্রক্রিয়া, এবং বংশধর .
প্রসেসহ্যান্ডেল ইন্টারফেস আমাদের নিম্নলিখিত ক্রিয়া সম্পাদন করতে দেয়।
- এটি একটি ProcessHandle.Info প্রদান করে একটি প্রক্রিয়া সম্পর্কে আরও তথ্য রয়েছে
- একটি প্রক্রিয়ার পিড
- যদি বেঁচে থাকে
- একটি প্রক্রিয়ার সরাসরি শিশুদের একটি স্ন্যাপশট পুনরুদ্ধার করুন
- একটি প্রক্রিয়ার সমস্ত অবতারণের একটি স্ন্যাপশট পুনরুদ্ধার করুন
- বর্তমানে চলমান সমস্ত প্রক্রিয়ার একটি স্ন্যাপশট পুনরুদ্ধার করুন
- প্রক্রিয়াটিকে ধ্বংস করার অনুমতি দিন
- এটি একটি সম্পূর্ণ ভবিষ্যত প্রদান করে একটি প্রসেসহ্যান্ডেল সহ যখন অগ্রগতি সমাপ্ত হয়
ProcessHandle.Inf ও প্রক্রিয়াটির একটি স্ন্যাপশট থেকে তথ্য ধারণ করে:
- প্রক্রিয়ার নির্দেশ
- প্রক্রিয়ার আর্গুমেন্টস
- প্রক্রিয়ার কমান্ড-লাইন
- প্রক্রিয়া শুরুর সময়
- প্রক্রিয়া দ্বারা ব্যবহৃত 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