import java.rmi.* ; import java.util.Vector ; /* ************************************ */ /* Une classe toute simple */ /* pour l'application cliente */ /* ************************************ */ public class ClientEx2v3v2 { /* ************************************ */ /* Programme principal */ /* ************************************ */ public static void main(String [] args) { int ns = 4 ; int n = 18 ; try { InterfaceEx2 esclaves[] = new InterfaceEx2[ns] ; for ( int i = 0 ; i < ns ; i++ ) { esclaves[i] =(InterfaceEx2) Naming. lookup("Esclave"+(i+1)); } Matrice m = new Matrice() ; m.aleatoire() ; System.out.println(m) ; Vecteur vecteurs[] = new Vecteur[n] ; for ( int i = 0 ; i < n ; i++ ) { vecteurs[i] = new Vecteur() ; vecteurs[i].aleatoire() ; } System.out.println("Vecteurs initiaux") ; for ( int i = 0 ; i < ns ; i++ ) { System.out.println(vecteurs[i]) ; } System.out.println("Apres multiplication:") ; ThreadClientEx2 tce[] = new ThreadClientEx2[ns] ; for ( int i = 0 ; i < ns ; i++ ) { int d = i * n / ns ; int nv = ((i+1) * n / ns) - d ; tce[i] = new ThreadClientEx2(vecteurs,d,nv,esclaves[i],m) ; System.out.println("Esclave "+i+" : "+d+" "+nv) ; } for ( int i = 0 ; i < ns ; i++ ) { tce[i].start() ; } System.out.println("Debut execution parallele") ; boolean alive = true ; while ( alive ) { alive = false ; Thread.sleep(100) ; for ( int i = 0 ; i < ns ; i++ ) { alive |= tce[i].isAlive() ; } } System.out.println("Fin execution parallele") ; } catch (Exception e) { System.out.println(e) ; } } } /* ************************************ */