Junior — Middle
Оё метавонед primitives ва асбобҳои асосии дар бастаи java.util.concurrent барои ташкил кардани иҷрои бисёрсоҳавиро номбар кунед?
sobes.tech AI
Ҷавоб аз AI
В пакете 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();