java 명령을 사용하여 배치 파일을 실행하고 데이터베이스에있는 텍스트 파일에서 배치 데이터를 읽는 중입니다. 예를 들어 동일한 배치 파일을 사용하여 15 분 간격으로 430 노드를 실행해야합니다. 그래서 나는 12 개의 스레드에서 430 개의 노드를 나누었습니다. 그래서 각 스레드는 동일한 배치 파일을 가리키는 40 개의 노드를 포함합니다. 그러나 병렬 실행중인 스레드는 배치 파일 명령이 완료 될 때까지 대기 할 수 없습니다. 모든 작업이 15 분 이내에 완료되어야하기 때문에 각 스레드를 기다릴 수 없습니다. 어떤 제안?java 멀티 스레딩
다음은 멀티 스레딩을 실행하는 코드입니다.
for (int i = 0; i < noOfMainThreads; i++) {
// running 12 thread for 40 node
threadArr[i] = new Thread(runnableArr[i]);
runnableArr[i] = new CodeBatchfile(nodeArr,nodeidArr);
}
for (int i = 0; i < noOfMainThreads; i++) {
threadArr[i].start;
}
class CodeBatchfile{
void run(){
for (int i=1;i<nodename.length;i++) {
// exciting batch file using 12 threads.
cmd = filepath + " " + nodenamelocal;
try {
process = Runtime.getRuntime().exec(cmd, null, bdir);
process.waitFor();
}
catch(Exception ex) {
System.out.println("Exception Running batch file" + ex.getLocalizedMessage());
}
}
}
"스레드는 배치 파일 명령이 완료 될 때까지 기다릴 수 없습니다. 왜 안 되니? –
코드를 제대로 들여 씁니다. 이것은 혼란스럽고 심지어 중괄호가 빠지지 않습니다. – Keppil
이것은 파싱 할 수 없습니다 ... –