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();