Sobes.tech
Junior — Middle

Hoe implementeer je multithreading om een grote hoeveelheid taken te verwerken, bijvoorbeeld 10.000 taken?

sobes.tech AI

Antwoord van AI

Om een grote hoeveelheid taken (bijvoorbeeld 10.000 taken) efficiënt te verwerken in Java, is het gebruik van een threadpool uit java.util.concurrent aan te raden.

Belangrijke stappen:

  1. Maak een ExecutorService met een vaste of dynamische grootte.
  2. Verstuur taken voor uitvoering via submit() of execute().
  3. Wacht tot alle taken voltooid zijn en sluit de pool correct af.

Voorbeeld:

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(() -> {
                // Taakverwerking
                System.out.println("Verwerking van taak " + taskId);
                // ...
            });
        }

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

Deze aanpak maakt efficiënt gebruik van CPU-bronnen en beheert het aantal gelijktijdig uitgevoerde threads, waardoor het aanmaken van te veel threads wordt voorkomen, wat de prestaties kan verminderen.