Sobes.tech
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();