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