Junior — Middle
Meg tudod nevezni a java.util.concurrent csomagban található fő primitívumokat és eszközöket a több szálon történő végrehajtás szervezéséhez?
sobes.tech MI
Válasz az MI-től
A java.util.concurrent csomagban több kulcsfontosságú primitív és eszköz található a több szálas végrehajtás szervezéséhez:
- Executor és ExecutorService — felületek a szálak pooljának kezelésére és feladatok aszinkron végrehajtására.
- Future és CompletableFuture — az aszinkron számítások eredményének megszerzéséhez.
- CountDownLatch — lehetővé teszi egy vagy több szálnak, hogy várjanak, amíg más szálak bizonyos műveleteket be nem fejeznek.
- CyclicBarrier — több szál szinkronizálása, egymás várakoztatása.
- Semaphore — korlátozza, hogy hány szál férhet hozzá egy erőforráshoz egyidejűleg.
- ReentrantLock — fejlettebb zárolási mechanizmus próbálkozási és időkorlátos lehetőségekkel.
- Párhuzamos gyűjtemények (pl. ConcurrentHashMap, CopyOnWriteArrayList) — szálbiztos gyűjtemények.
- Atomi változók (AtomicInteger, AtomicLong stb.) — atomikus műveletek változókon zárolás nélkül.
ExecutorService példája:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("Feladat végrehajtva egy külön szálon");
});
executor.shutdown();