Witam,
Potrzebuję zrobić mechanizm wczytujący dane z jednego pliku w kilku wątkach, natomiast w każdym wątku dane podstawowe będą jakoś modyfikowane. Na początku stworzyłem sobie plik z X danymi oraz plik konfiguracyjny zawierający dwie wartości {1};{2}. Ilość wierszy w pliku = ilość wątków. Dodałem dwie konfiguracje, czyli powinny utworzyć się dwa wątki. Na starcie programu wczytuję konfigurację do listy z klasie GeneratorConfig zawierającej te dwa pola.
I teraz moje pytanie jak mogę zrobić, aby odpalić dwa wątki przekazać każdemu z nich dwa parametry, w metodzie wykonać jakieś operacje i dodać wynik do wspólnej dla wszystkich wątków listy? którą wyciągne po zakończeniu pracy wątków?
Póki co utworzyłem sobie klase implementującą Runnable, z konstruktorem przyjmującym dwa parametry i metodą run(). Zdefiniowałem wspólną listę.
public void run() {
for (int i = 0; i < 100; i++) {
synchronized (tList) {
tList.add(i);
}
}
}
Do metody run nie można przekazywać parametrów, więc musiał bym dla każdego wątku utworzyć nowy obiekt więc nie będę mógł mieć wspólnej listy. W jaki sposób mogę to rozwiązać? Czy wątek po zakończonej pracy może zwrócić mi liste? tak żeby po za wątkami utworzyć jedną wspólną listę?