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