@Override
	public void run() {
		int counter;
		System.out.printf("%s start process lines from %d to %d\n", Thread
				.currentThread().getName(), startRow, endRow);
		for (int i = startRow; i < endRow; i++) {
			int[] row = matrix.getRow(i);
			counter = 0;
			for (int j = 0; j < row.length; j++) {
				if (row[j] == number) {
					counter++;
				}
			}
			result.setData(i, counter);
		}
		System.out.printf("%s finish process lines from %d to %d\n", Thread
				.currentThread().getName(), startRow, endRow);

		// barrier await
		try {
			barrier.await();
		} catch (InterruptedException | BrokenBarrierException e) {
			e.printStackTrace();
		}
	}