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