problem zzalka

0

Zapisac wielowątkowy program w języku Java ,składający się z dwóch wątków , które działają na wspólnej tablicy a . Każdy z wątków niezależnie (równolegle) sumuje elementy w swojej połówce tablicy, a dopiero potem w sposób sekwencyjny dokonywane jest wyliczenie sumy wszystkich elementów tablicy na podstawie wyliczonych wcześniej sum elementów dla połówek tablicy. Początkowa wartośc elementów tablicy a ustawiana jest w programie głównym , który odpowiedzialny jest także wyświetlenie wynikowej wartości sumy wszystkich elementów tablicy. Struktura programu powinna mieć nastepujacą postac

public class watki_static {
static double a[];
static double sum;
// klasa definiująca oba wątki lub w ostatecznosci 2 klasy definiujące 2 wątki
……….
Public static void main (String [] args) {
//program główny konczy sie wyswietleniem sumy elementów talbicy a
}
}


Moje rozwiązanie nie dokonca prawidłowe
public class watek_static {
static double tab [];
static class suma =0;

static class suma_watek extends Thread {
private int numer;
private int rozmiar;

private double suma_l=0;
suma_watek(int numer, int rozmiar)
{
this.numer=numer;
this.rozmiar=rozmiar;
}
public void run () {
for (int i=0; i<rozmiar; ++i)
suma_l= suma_l + tab[numer+rozmiar*i];
synchronized (this){suma= suma + suma_l;} /// konkretnie chodzi o tą linijke związaną synchronizacją
}
}

public static void main ( String [] args)
{
tab = new double [200];
for(int i=0; i<200; ++i)
suma_watek tm1 = new suma_watek (0,100);
suma_watek tm2 = New suma_watek (1,100);
tm1.start();
tm2.start();
try {
System.out.println (“ czekaj na zakończenie”);
tm1.join();
tm2.join();

} catch (InterruptedException e) {}
System.out.println(“suma wynosi “ +suma);
}
}

0

Witam jestem swieżakiem . Ale do rzeczy mam pewien kłopot i mam nadzieje ,że pomożecie mi ! albowiem mam problemy z zaliczeniem javy u pewnego pana profesora gdyż jestem kiepskim programistą ! pan zadal mi zadanie, które rozwiazał mi kolega nie do konca idealnie ale mniejsza oto . problem w tym ze pan zaczal zadawac podchwytliwe pytania
tzn jakie są mechanizmy synchronizacji w javie a konkretnie jak wygląda synchronizacja blokowa w moim programie ! panu prof nie wystarczyla odp ze gdy że użyłem synchronized i gdy jeden watek znajduje się w monitorze to monitor ustawia blokade na blok i zwalnia ja po wykonaniu! zapytal jaki monitor i jak to sie konkretnie odbywa bardzo prosze o waszą pomoc gdyż jestem lama z javy
a oto tersc zadania i moje rozwiazanie

Zadanie powyżej

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