Junior — Middle
Ի՞նչ կոմպոնենտներ եք օգտագործել concurrency փաթեթից ձեր նախագծերում։
sobes.tech AI
Պատասխան AI-ից
Java նախագծերում ես օգտագործել եմ java.util.concurrent փաթեթից հետևյալ կոմպոնենտները՝
- ExecutorService — հոսքերի խմբի կառավարում և առաջադրանքների ասինխրոն կատարման համար:
- Future և Callable — առաջադրանքի կատարման արդյունքը ստանալու համար առանձին հոսքում:
- CountDownLatch և CyclicBarrier — հոսքերի սինխրոնիզացիա, օրինակ՝ սպասել մի քանի առաջադրանքների ավարտին:
- ConcurrentHashMap — հոսքային անվտանգ քարտայի իրականացում՝ միաժամանակյա մուտքի համար:
- Semaphore — միաժամանակ կատարվող գործողությունների քանակի սահմանափակման համար:
Callable-ով ExecutorService-ի օգտագործման օրինակ՝
ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> task = () -> {
// մի հաշվարկային առաջադրանք
return 123;
};
Future<Integer> future = executor.submit(task);
try {
Integer result = future.get();
System.out.println("Արդյունք: " + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
executor.shutdown();