Sobes.tech
Junior — Middle

Milyen komponenseket használtál a concurrency csomagból a projektjeidben?

sobes.tech MI

Válasz az MI-től

Java projektekben a java.util.concurrent csomagból a következő komponenseket használtam:

  • ExecutorService — a szálkészlet kezelése és feladatok aszinkron végrehajtása.
  • Future és Callable — a feladat végrehajtásának eredményének megszerzése külön szálon.
  • CountDownLatch és CyclicBarrier — szálak szinkronizálása, például több feladat befejezésének várása.
  • ConcurrentHashMap — szálbiztos térkép megvalósítása párhuzamos hozzáféréshez.
  • Semaphore — az egyszerre végrehajtott műveletek számának korlátozása.

Példa a Callable-t használó ExecutorService-re:

ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> task = () -> {
    // valamilyen számítási feladat
    return 123;
};
Future<Integer> future = executor.submit(task);
try {
    Integer result = future.get();
    System.out.println("Eredmény: " + result);
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
executor.shutdown();