Sobes.tech
Back to questions
Junior — Middle
59

Какие компоненты из пакета concurrency вы применяли в своих проектах?

Answer from AI

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