Junior — Middle
Java.util.concurrent paketinde çoklu iş parçacığı yürütmesini düzenlemek için sağlanan temel ilkelere ve araçlara isim verebilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
В пакете java.util.concurrent есть несколько ключевых примитивов и инструментов для организации многопоточного исполнения:
- Executor и ExecutorService — интерфейсы для управления пулом потоков и асинхронным выполнением задач.
- Future и CompletableFuture — для получения результата асинхронных вычислений.
- CountDownLatch — позволяет одному или нескольким потокам ждать, пока другие потоки выполнят определённые действия.
- CyclicBarrier — синхронизирует несколько потоков, заставляя их ждать друг друга.
- Semaphore — ограничивает количество потоков, которые могут одновременно получить доступ к ресурсу.
- ReentrantLock — расширенный механизм блокировки с возможностью попытки захвата и таймаутом.
- Concurrent Collections (например, ConcurrentHashMap, CopyOnWriteArrayList) — потокобезопасные коллекции.
- Atomic Variables (AtomicInteger, AtomicLong и др.) — для атомарных операций над переменными без использования блокировок.
Пример использования ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("Задача выполнена в отдельном потоке");
});
executor.shutdown();