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:
- Fiks yoki dinamik o'lchamdagi iplar havuzini yaratish.
- Vazifalarni
submit()yokiexecute()yordamida yuborish. - 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 ресурсларидан самарали фойдаланишга ва бир вақтда ишга туширилаётган тўлқинлар сонини бошқаришга имкон беради, бу ортиқча тўлқинлар яратилишининг олдини олади ва ишлаш самарадорлигини оширади.