Prozessliste von 'N' Elementen mit mehreren Threads
Ich habeList
vonN
Elemente und ich möchte dieses @ teilList
sequentiell zwischen einer festen Anzahl vonthreads
.
By sequentielle ich meine, ich möchte @ übergeb1 to N/4
to firstthread
, N/4 + 1 to N/2
zum zweiten Thread undN/2+1 to N
bis drittesthread
, Jetzt einmal allethreads
haben ihre Arbeit beendet, ich möchte main @ benachrichtigthread
, um eine Nachricht zu senden, dass die gesamte Verarbeitung abgeschlossen ist.
Was ich bisher gemacht habe ist, dass ich @ implementiert haExecutorService
Ich habe so etwas gemacht
ExecutorService threadPool = Executors.newFixedThreadPool(Number_of_threads);
//List of items List
List <items>itemList = getList();
for (int i = 0 i < Number_of_threads ;i++ ) {
//how to divide list here sequentially and pass it to some processor while will process those items.
Runnable processor = new Processor(Start, End)
executor.execute(process);
}
if(executor.isTerminated()){
logger.info("All threads completed");
}
Wie kann man die Liste in aufeinanderfolgende Abschnitte aufteilen? Gibt es einen besseren Weg, um eine solche Funktionalität zu erreichen?