Sobes.tech
Junior — Middle

Kokias ExecutorService sąsajos realizacijas žinote ir kuo jos skiriasi?

sobes.tech AI

Atsakymas iš AI

ExecutorService yra sąsaja, skirta valdyti gijų baseiną ir vykdyti užduotis asinchroniškai. Pagrindinės Java standartinės bibliotekos įgyvendinimai:

  • ThreadPoolExecutor — lankstiausias ir dažniausiai naudojamas įgyvendinimas, leidžia konfigūruoti baseino dydį, užduočių eilę ir perkrovos politiką.
  • ScheduledThreadPoolExecutor — ThreadPoolExecutor plėtinys, palaiko užduočių planavimą su vėlavimu arba periodinį vykdymą.
  • ForkJoinPool — skirtas užduotims, kurias galima suskirstyti į pogrupius (naudojamas Fork/Join karkase), efektyvus paraleliniams skaičiavimams.

Skirtumai:

  • ThreadPoolExecutor tinka bendrosioms reikmėms.
  • ScheduledThreadPoolExecutor — užduotims su laikmačiais.
  • ForkJoinPool — rekursiniam paralelizmui.

Pavyzdys, kaip sukurti ThreadPoolExecutor:

ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> System.out.println("Užduotis įvykdyta"));
executor.shutdown();