Junior — Middle
Кадом компонент аз баста concurrency дар лоиҳахо истифода бурдед?
sobes.tech AI
Ҷавоб аз AI
Дар проектҳои Java, ман компонентҳои зеринро аз баста java.util.concurrent истифода кардам:
- ExecutorService — барои идоракунии пулҳои сӯзанҳо ва иҷрои асинхронӣ кардани вазифаҳо.
- Future ва Callable — барои гирифтани натиҷаи иҷрои вазифа дар сӯзани алоҳида.
- CountDownLatch ва CyclicBarrier — барои ҳамоҳангсозии сӯзанҳо, масалан, интизор шудан барои анҷоми чанд вазифа.
- ConcurrentHashMap — татбиқи бехатари сӯзан барои дастрасии параллел.
- Semaphore — барои маҳдуд кардани шумораи амалҳои ҳамзамон иҷрошаванда.
Маслиҳат барои истифодаи ExecutorService бо Callable:
ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> task = () -> {
// як вазифаи ҳисоббарор
return 123;
};
Future<Integer> future = executor.submit(task);
try {
Integer result = future.get();
System.out.println("Натиҷа: " + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
executor.shutdown();