Junior — Middle
რომელი ExecutorService ინტერფეისის რეალიზაციებს იცნობ და რა განსხვავებები აქვთ მათ?
sobes.tech AI
პასუხი AI-სგან
ExecutorService — ეს ინტერფეისი არის თხელი ნაკადის პულის მართვისა და ასინქრონული დავალებების შესრულებისთვის. Java სტანდარტული ბიბლიოთეკის ძირითადი განხორციელებები:
- ThreadPoolExecutor — ყველაზე მოქნილი და ხშირად გამოყენებადი განხორციელება, საშუალებას აძლევს კონფიგურაცია გააკეთოს პულის ზომის, დავალებების რიგისა და გადატვირთვის პოლიტიკის.
- ScheduledThreadPoolExecutor — გაფართოება ThreadPoolExecutor-ის, მხარდაჭერა აქვს დავალებების დაგვიანებით ან პერიოდული შესრულებისთვის.
- ForkJoinPool — განკუთვნილია დავალებებისთვის, რომლებიც შეიძლება დაყოფილ იქნას ქვადავალებებად (გამოყენება Fork/Join ჩარჩოში), ეფექტურია პარალელური გამოთვლებისთვის.
განსხვავებები:
- ThreadPoolExecutor შესაფერისია ზოგადი მიზნებისთვის.
- ScheduledThreadPoolExecutor — დროის გამწესებლით დავალებებისთვის.
- ForkJoinPool — რეკურსიული პარალელიზმისთვის.
მაგალითი ThreadPoolExecutor-ის შექმნის:
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("დავალება დასრულდა"));
executor.shutdown();