MultiSlave.java

/**
 * Classe définissant le code à exécuter par l'esclave.
 */
public class MultiSlave implements Runnable {
  // Arguments de la multiplication
  private double[] operand;
  // Résultat à calculer
  private double result;
  /** Crée un objet code pour l'esclave de la multiplication. */
  public MultiSlave(double[] operand) {
    this.operand = operand;
  }
  /**
   * Retourne le résultat de la multiplication. À n'appeler qu'après
   * la fin de l'exécution de run().
   */
  public double result() { return result;  }
  /** Méthode à exécuter par le processus léger. */
  public void run() {
    // Test des opérandes pour cohérence du résultat
    if ((operand == null) || (operand.length == 0)) {
      System.out.println("esclave: terminaison");
      return;
    }
    // Initialisation puis multiplication des opérandes
    result = operand[0];
    for (int i=1; i<operand.length; i++)
      result *= operand[i];
    System.out.println("esclave: terminaison");
  }
}