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