비슷한 질문을 찾았지만 원하는 것을 찾지 못했습니다.자바의 분할 매트릭스
1024x1024 행렬을 4 부분으로 똑같이 분할해야하지만 스레드가있는 다른 클래스에서 작동하려면 모든 부분의 시작과 끝 부분을 사용해야합니다. 나는 두 개의 루프를 사용하는 것에 대해 생각했지만 최대 값을 초과하기 때문에 변수의 값을 올바르게 변경하는 방법을 모른다.
코드 :
private static final int MAX_MATRIX = 1024;
private static final int NUM_THREADS = 4;
int start_row = 0, end_row = 0, start_column = 0, end_column = 0;
for (int i = 0; i < NUM_THREADS/2; i++){
end_row = start_row + (MAX_MATRIX/2);
for (int j = 0; j < (NUM_THREADS/2); j++){
end_column = start_column + (MAX_MATRIX/2);
myTask[i] = new TaskAnalyze(start_row, end_row, start_column, end_column, int_radom);
myThreads[i] = new Thread(myTask[i],"TASK " + i);
}
start_column += MAX_MATRIX/2;
start_row += MAX_MATRIX/2;
}
int_random는 행렬이다.
어떤 가져야 것은 :
myTask [0] 새 TaskAnalyze (0, 512, 0, 512을 int_radom) =;
myTask [1] = 새 TaskAnalyze (0, 512, 512, 1024, int_radom);
myTask [2] = 새 TaskAnalyze (512, 1024, 0, 512, int_radom);
myTask [3] = 새 TaskAnalyze (512, 1024, 512, 1024, int_radom);
제안 사항?
을 당신은이를 앞에' j' 루프는'j'를 사용하지 않습니다. –
음 ... 값을 변경하는 데 도움이 될 수 있으므로 넣으면 제거해야합니까? – Kuru