Rad sa nitima množenje matrica 4 dio/ Matrix multiplication using multiple threads 4 part

package matrice; /** * Klasa <code>PokretacNiti</code> je zaduzena za pokretanje svih niti koje * su potrebne u mnozenju matrice, * @author Amel Dzanic */ public class PokretacNiti { private matrica A,B,rez; private nitMatrice n[] ; /** * Konstruktor koji puni dvije matrice koje ce se mnoziti * te kreira za to potreban broj niti * @param A matrica A * @param B matrica B * @throws MatricaException ako nisu ulancane */ public PokretacNiti(matrica A, matrica B) throws MatricaException{ this.A=A; this.B=B; if (!A.isUlancana(B)) throw new MatricaException("Matrice nisu ulancane"); rez=new matrica(A.getRedovi(), B.getKolone(), "Rezultirajuca matrica:"); n = new nitMatrice[A.getRedovi()*B.getKolone()]; } private void pokreniNitiMatrice(){ for(int i=0,h=0; i<A.getRedovi();i++){ for(int j=0;j<B.getKolone();j++){ n[h]=new nitMatrice(A.vratiRed(i), B.vratiKolonu(j),i,j); h++; } } } private void smjestiRezultate(){ for (int i=0,h=0;i<A.getRedovi();i++){ for(int j=0;j<B.getKolone();j++){ try{ if(n[h].isAlive())n[h].join();//ako nit nije zavrsila nek zavrsi rez.addElement(n[h].getRez(), n[h].getI(), n[h].getJ()); h++; } catch (InterruptedException ie){} } } } public void obavi() { pokreniNitiMatrice(); smjestiRezultate(); } public matrica getRez() { return rez; } }

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.