Sobes.tech
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();