Ciao a tutti ho da svolgere un esercizio in java ma non ci riesco.
Data una matrice quadrata di interi devo scorrere la matrice tramite due thread sincronizzati in modo tale che il primo thread conta gli elementi dispari per ogni riga mentre il secondo thread crea per ogni riga un array di dimensione pari al numero di numeri dispari.
Finora ho scritto questo ma non funziona
codice:
class Esercizio {
private static int riga = 0;
private static int [][] m = {{1,2,3,4,5} , {6,7,8,9,10} , {11,12,13,14,15}};
private static int count = 0;
private static Thread t1 ,t2;
public synchronized static int [] getVettoreRiga () {
return m [riga];
}
public static void main (String [] args) throws Exception {
t1 = new Thread () {
public void run () {
try {
t2.wait ();
}catch (Exception e) {
e.printStackTrace ();
}
while (riga < m.length) {
count = 0;
int [] a = getVettoreRiga ();
for (int i : a)
if (i%2 != 0)
count++;
notify ();
}
}
};
t2 = new Thread () {
public void run () {
while (riga < m.length) {
try {
t1.wait ();
}catch (Exception e) {
e.printStackTrace ();
}
int [] a = new int [count];
int pos = 0;
int [] b = getVettoreRiga ();
for (int i : b)
if (i%2 != 0) {
a [pos] = i;
pos++;
}
for (int i : a)
System.out.print (i + " ");
notify ();
}
}
};
t1.start ();
t2.start ();
t1.join ();
t2.join ();
System.out.println ("FINITO");
}
}
Aiutatemi vi prego!!!!