Sobes.tech
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();