在以下情况下,我们正在处理一个控制台应用程序,其中有一个PHP脚本作为java应用程序中的进程运行。每次脚本输入两个值并返回“OK”或“ERR”。我试图捕获从输入输入到脚本时的时间以及返回“OK”或“ERR”值的时间。试图读取进程输入流
我已经实施了以下修复程序,但它似乎仍无法工作。如果任何人都可以摆脱一些光。
try {
proc = runtime.exec("php " + "script.php");
inp = new BufferedReader(new InputStreamReader(proc.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
while (true) {
temp = getRandomUser() + " " + getRandomHost();
startTime = System.currentTimeMillis();
//System.out.println(temp);
print(pipe(temp));
while (!inp.readLine().equals("ERR") || !inp.readLine().equals("OK")) {
}
endTime = System.currentTimeMillis();
procTime = (long) endTime - startTime;
fout.write(Double.toString(procTime));
fout.newLine();
//System.out.println("! " + procTime);
}
} catch (IOException ex) {
System.out.println("Thread prematurely Terminated...");
}
当您运行的代码是什么呢? – wchargin
它只是没有做任何事情。看似经历了一次循环,就是这样。请注意,这些进程中的一部分发生在并行线程中。 – Sam
*你是什么意思?“就是这样”*?代码片段结束了吗?它会阻止吗?如果是这样的话? –