Sobes.tech
Junior — Middle

Vai vari nosaukt galvenos primitives un rīkus, kas nodrošināti java.util.concurrent paketā, lai organizētu daudzvadu izpildi?

sobes.tech AI

Atbilde no AI

java.util.concurrent paketā ir vairākas galvenās primitīvas un rīki, lai organizētu daudzvīrusu izpildi:

  • Executor un ExecutorService — saskarnes, kas ļauj pārvaldīt pavedienu baseinu un veikt uzdevumus asenhroni.
  • Future un CompletableFuture — lai iegūtu asenhrono aprēķinu rezultātus.
  • CountDownLatch — ļauj vienam vai vairākiem pavedieniem gaidīt, kamēr citi pavedieni veic noteiktas darbības.
  • CyclicBarrier — sinhronizē vairākus pavedienus, liekot tiem gaidīt viens otru.
  • Semaphore — ierobežo, cik daudz pavedienu var vienlaikus piekļūt resursam.
  • ReentrantLock — uzlabots bloķēšanas mehānisms ar iespēju mēģināt iegūt bloķi un ar laika ierobežojumu.
  • Daudzvīrusu kolekcijas (piemēram, ConcurrentHashMap, CopyOnWriteArrayList) — pavedienu drošas kolekcijas.
  • Atomiskas mainīgās (AtomicInteger, AtomicLong u.c.) — atomiskas operācijas ar mainīgajiem bez bloķēšanas.

ExecutorService piemērs:

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
    System.out.println("Uzdevums izpildīts atsevišķā pavedienā");
});
executor.shutdown();