Sobes.tech
Junior — Middle

Büyük bir görev hacmini, örneğin 10.000 görevi işlemek için çoklu iş parçacığını nasıl uygularsınız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da büyük bir görev hacmini (örneğin, 10.000 görev) verimli bir şekilde işlemek için java.util.concurrent içindeki thread havuzunu kullanmak etkilidir.

Ana adımlar:

  1. Sabit veya dinamik boyutta bir ExecutorService oluşturun.
  2. Görevleri submit() veya execute() ile gönderin.
  3. Tüm görevlerin tamamlanmasını bekleyin ve havuzu düzgün şekilde kapatın.

Örnek:

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(() -> {
                // Görev işleme
                System.out.println("Görev işleniyor " + taskId);
                // ...
            });
        }

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

Bu yaklaşım, CPU kaynaklarını verimli kullanmayı ve aynı anda çalışan thread sayısını yönetmeyi sağlar, böylece çok fazla thread oluşturulmasının önüne geçilir ve performans düşüşü engellenir.