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();