Sobes.tech
Junior — Middle

Məsələn, 10 000 tapşırıq kimi böyük həcmdə tapşırıqları işləmək üçün çoxlu iş parçacığını necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da böyük həcmdə tapşırıqları (məsələn, 10 000 tapşırıq) səmərəli işləmək üçün java.util.concurrent-dən thread hovuzundan istifadə etmək tövsiyə olunur.

Əsas addımlar:

  1. Sabit və ya dinamik ölçülü thread hovuzu yaradın.
  2. Tapşırıqları submit() və ya execute() vasitəsilə göndərin.
  3. Bütün tapşırıqların tamamlanmasını gözləyin və hovuzu düzgün bağlayın.

Nümunə:

import java.util.concurrent.*;

public class TaskProcessor {
    public static void main(String[] args) throws InterruptedException {
        int numberOfTasks = 10000;
        int poolSize = Runtime.getRuntime().availableProcessors();

        ExecutorService executor = Executors.newFixedThreadPool(poolSize);

        for (int i = 0; i < numberOfTasks; i++) {
            final int taskId = i;
            executor.submit(() -> {
                // Tapşırığın işlənməsi
                System.out.println("Tapşırıq işlənir " + taskId);
                // ...
            });
        }

        executor.shutdown();
        executor.awaitTermination(1, TimeUnit.HOURS);
    }
}

Bu yanaşma CPU resurslarından səmərəli istifadə etməyə və eyni zamanda icra olunan threadlərin sayını idarə etməyə imkan verir, çox sayda thread yaratmaqdan qaçınaraq performansı aşağı salma ehtimalını azaldır.