Dodawanie do listy w kilku watkach

0

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ę?

0

Sam nie bardzo ogarniam :D Wiec w razie co proszę o wyrozumiałość . Ale czy coś takiego Ci nie pomoże ?

runners = new watek(paramter1, paramter2);
threads = new Thread(runners);
threads.start();


public class watek implements Runnable {
	
	private int paramter1;
	private int paramter2;
	
public watek(int paramter1, int paramter2) {
		this.parametr1 = parametr1;
		this.paramtet2 = parametr2;

	}

@Override
	
	public void run() {
System.out.println(paramter1+paramter2);

}
	
 

A jak chcesz, aby do listy był dostęp ze wszystkich watków to można wsadzic liste w oddzielna klase i potem obiekt tej klasy przekazywac jako parametr do watku. Obiekt wtedy bedzie wspolny dla watków.

1 użytkowników online, w tym zalogowanych: 0, gości: 1