예제 #1
0
  public void run() {
    System.out.println("Start MainTask");

    for (int i = 0; i < TaskHolder.getTaskSize(); i++) {
      TaskHolder.getTaskByIndex(i).start();
    }

    BufferedImage[][] smallImages = new BufferedImage[3][2];

    imageProcessor = new ImageProcessing();
    imageProcessor.CreateNewImage(0, 3071, 0, 1535);
    smallImages = imageProcessor.DivideImage(imageProcessor.getFinalImage(), 3, 2);
    for (int i = 0; i < TaskHolder.getTaskSize(); i++) {
      if (i == 1) {
        sendImageRange(i, smallImages[0][1]);
      } else if (i == 3) {
        sendImageRange(i, smallImages[1][1]);
      } else if (i == 5) {
        sendImageRange(i, smallImages[2][1]);
      } else if (i == 0) {
        sendImageRange(i, smallImages[0][0]);
      } else if (i == 2) {
        sendImageRange(i, smallImages[1][0]);
      } else if (i == 4) {
        sendImageRange(i, smallImages[2][0]);
      }
    }

    try {
      System.out.println("Waiting for Tasks!");
      for (int i = 0; i < TaskHolder.getTaskSize(); i++) {
        // System.out.println(String.format("Waiting for Task %d!", i));
        TaskHolder.getTaskByIndex(i).join();
        // System.out.println(String.format("Task %d finished!", i));
      }
    } catch (InterruptedException e) {
      notifyAll();
    }
    System.out.println("The image has: " + objectCounter + " objects.");
    System.out.println("Ending MainTask");
  }