Junior — Middle
java.util.concurrent paketində çox iş parçacığı icrasını təşkil etmək üçün əsas primitivlər və alətləri adlandıra bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
java.util.concurrent paketində çox ipli icra təşkil etmək üçün bir neçə əsas primitiv və alət mövcuddur:
- Executor və ExecutorService — iş parçacığı hovuzunu idarə etmək və tapşırıqları asinxron icra etmək üçün interfeyslər.
- Future və CompletableFuture — asinxron hesablamaların nəticəsini almaq üçün.
- CountDownLatch — bir və ya bir neçə iş parçacığının digər iş parçacıqları müəyyən hərəkətləri tamamlayana qədər gözləməsinə imkan verir.
- CyclicBarrier — bir neçə iş parçacığını sinxronlaşdırır, onları bir-birini gözləməyə məcbur edir.
- Semaphore — eyni zamanda resursa giriş edə biləcək iş parçacığı sayını məhdudlaşdırır.
- ReentrantLock — qabaqcıl kilidləmə mexanizmi, cəhd və zaman aşımı imkanları ilə.
- Konkurrent kolleksiyalar (məsələn, ConcurrentHashMap, CopyOnWriteArrayList) — iş parçacığı təhlükəsiz kolleksiyalar.
- Atomik dəyişənlər (AtomicInteger, AtomicLong və s.) — kilid istifadə etmədən dəyişənlər üzərində atomik əməliyyatlar üçün.
ExecutorService istifadə nümunəsi:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("Ayrı bir iş parçacığında tapşırıq yerinə yetirildi");
});
executor.shutdown();