Sobes.tech
Junior — Middle

Kun je de belangrijkste primitieve en hulpmiddelen noemen die in het pakket java.util.concurrent worden geleverd voor het organiseren van multithread-uitvoering?

sobes.tech AI

Antwoord van AI

In het pakket java.util.concurrent zijn er verschillende kernprimitive en hulpmiddelen voor het organiseren van multithread-uitvoering:

  • Executor en ExecutorService — interfaces voor het beheren van de threadpool en het uitvoeren van taken asynchroon.
  • Future en CompletableFuture — om het resultaat van asynchrone berekeningen te verkrijgen.
  • CountDownLatch — stelt één of meerdere threads in staat te wachten tot andere threads bepaalde acties voltooien.
  • CyclicBarrier — synchroniseert meerdere threads, waardoor ze op elkaar wachten.
  • Semaphore — beperkt het aantal threads dat gelijktijdig toegang kan krijgen tot een resource.
  • ReentrantLock — geavanceerd vergrendelingsmechanisme met de mogelijkheid om te proberen te vergrendelen en met timeout.
  • Concurrerende collecties (bijvoorbeeld, ConcurrentHashMap, CopyOnWriteArrayList) — thread-veilige collecties.
  • Atomische variabelen (AtomicInteger, AtomicLong, enz.) — voor atomische operaties op variabelen zonder gebruik van locks.

Voorbeeld van het gebruik van ExecutorService:

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
    System.out.println("Taak uitgevoerd in een aparte thread");
});
executor.shutdown();