Sobes.tech
Junior — Middle

Көп иштөөчүнү ишке ашыруу үчүн, мисалы, 10 000 тапшырманы иштетүү үчүн, кантип ишке ашыруу керек?

sobes.tech AI

AIден жооп

Java-da uly mömkinçilikli vazifalarni (məsələn, 10 000 vazifa) effektiv tarzda ishlash uchun java.util.concurrent-dan iplar havuzidan foydalanish tavsiya etiladi.

Asosiy bosqichlar:

  1. Fiks yoki dinamik o'lchamdagi iplar havuzini yaratish.
  2. Vazifalarni submit() yoki execute() yordamida yuborish.
  3. Barcha vazifalar tugashini kutish va havuzni to'g'ri yopish.

Misol:

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(() -> {
                // Вазирни ишлаш
                System.out.println("Вазир ишланмоқда " + taskId);
                // ...
            });
        }

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

Бу ёндашув CPU ресурсларидан самарали фойдаланишга ва бир вақтда ишга туширилаётган тўлқинлар сонини бошқаришга имкон беради, бу ортиқча тўлқинлар яратилишининг олдини олади ва ишлаш самарадорлигини оширади.