Junior — Middle
Kannst du die wichtigsten Primitive und Werkzeuge nennen, die im Paket java.util.concurrent zur Organisation der Multithread-Ausführung bereitgestellt werden?
sobes.tech KI
Antwort von AI
Im Paket java.util.concurrent gibt es mehrere primitive und Werkzeuge, um die Multithread-Ausführung zu organisieren:
- Executor und ExecutorService — Schnittstellen zur Verwaltung des Thread-Pools und zur asynchronen Ausführung von Aufgaben.
- Future und CompletableFuture — um das Ergebnis asynchroner Berechnungen zu erhalten.
- CountDownLatch — ermöglicht es einem oder mehreren Threads, darauf zu warten, dass andere Threads bestimmte Aktionen ausführen.
- CyclicBarrier — synchronisiert mehrere Threads, indem sie einander warten lassen.
- Semaphore — beschränkt die Anzahl der Threads, die gleichzeitig auf eine Ressource zugreifen können.
- ReentrantLock — erweiterter Sperrmechanismus mit der Möglichkeit, zu versuchen, die Sperre zu erlangen, und mit Timeout.
- Nebenläufige Sammlungen (z.B. ConcurrentHashMap, CopyOnWriteArrayList) — threadsichere Sammlungen.
- Atomare Variablen (AtomicInteger, AtomicLong usw.) — für atomare Operationen an Variablen ohne Verwendung von Sperren.
Beispiel für die Verwendung von ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("Aufgabe wird in einem separaten Thread ausgeführt");
});
executor.shutdown();