Sobes.tech
Junior — Middle

Aké komponenty z balíčka concurrency ste použili vo svojich projektoch?

sobes.tech AI

Odpoveď od AI

V Java projektoch som použil nasledujúce komponenty z balíka java.util.concurrent:

  • ExecutorService — na správu vláknového bazéna a asynchrónne vykonávanie úloh.
  • Future a Callable — na získanie výsledku vykonania úlohy v samostatnom vlákne.
  • CountDownLatch a CyclicBarrier — na synchronizáciu vlákien, napríklad, čakanie na dokončenie viacerých úloh.
  • ConcurrentHashMap — vlákno-bezpečná implementácia mapy pre paralelný prístup.
  • Semaphore — na obmedzenie počtu súčasne vykonávaných operácií.

Príklad použitia ExecutorService s Callable:

ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> task = () -> {
    // nejaká výpočtová úloha
    return 123;
};
Future<Integer> future = executor.submit(task);
try {
    Integer result = future.get();
    System.out.println("Výsledok: " + result);
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
executor.shutdown();