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:
- Sabit və ya dinamik ölçülü thread hovuzu yaradın.
- Tapşırıqları
submit()və yaexecute()vasitəsilə göndərin. - 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.