Sobes.tech
Junior — Middle

Կարող եք նշել java.util.concurrent փաթեթում տրամադրված հիմնական primitives և գործիքները բազմապատկման կատարման կազմակերպման համար?

sobes.tech AI

Պատասխան AI-ից

java.util.concurrent փաթեթում կան մի քանի հիմնական primitive և գործիքներ՝ բազմաֆունկցիոնալ կատարման կազմակերպման համար.

  • Executor և ExecutorService — ինտերֆեյսներ՝ թելերի պուլը կառավարելու և ասինխրոն աշխատանքների կատարման համար:
  • Future և CompletableFuture — ստանալու արդյունքը ասինխրոն հաշվարկների:
  • CountDownLatch — թույլ է տալիս մեկ կամ մի քանի թելերի սպասել, մինչ մյուսները որոշ գործողություններ կատարեն:
  • CyclicBarrier — սինխրոնիզացնում է մի քանի թելեր, ստիպելով նրանց սպասել մեկը մյուսին:
  • Semaphore — սահմանափակում է միաժամանակ մի քանի թելերի մուտքը ռեսուրս:
  • ReentrantLock — առաջադեմ լոկի մեխանիզմ՝ փորձել և ժամանակային սահմանափակումներով:
  • Համատեղելի հավաքածուներ (օրինակ, ConcurrentHashMap, CopyOnWriteArrayList) — թելերի անվտանգ հավաքածուներ:
  • Ատոմային փոփոխականներ (AtomicInteger, AtomicLong և այլն) — գործողություններ՝ առանց լոկների:

Օրինակ՝ ExecutorService-ի օգտագործումը:

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
    System.out.println("Աշխատանքը կատարվում է առանձին թելում");
});
executor.shutdown();