javaコマンドを使用してバッチファイルを実行し、データベースに配置するテキストファイルのバッチデータを読み取ります。たとえば、同じバッチファイルを使用して15分間隔で430ノードを実行する必要があります。そこで、430ノードを12スレッドに分割したので、各スレッドには同じバッチファイルを指す40ノードが含まれています。ただし、並列で実行されているスレッドは、バッチファイルコマンドが完了するのを待つことができません。すべてのタスクが15分以内に完了するはずなので、各スレッドを待つことはできません。助言がありますか?
以下は、マルチスレッドを実行するコードの一部です。
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());
}
}
}