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:
- Sabit veya dinamik boyutta bir
ExecutorServiceoluşturun. - Görevleri
submit()veyaexecute()ile gönderin. - 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.