java processbuilder读线cpu密集型
使用ProcessBuilder从JAVA内部运行外部C代码。(编译的)C代码需要约1秒钟才能产生输出-相对较慢 我注意到的是,在C代码完成之前,BufferedReader读取行似乎非常占用CPU。由于我必须每5秒运行一次外部C代码,CPU利用率就会增加。以下是readline代码:java processbuilder读线cpu密集型,java,readline,processbuilder,Java,Readline,Processbuilder,使用ProcessBuilder从JAVA内部运行外部C代码。(编译的)C代码需要约1秒钟才能产生输出-相对较慢 我注意到的是,在C代码完成之前,BufferedReader读取行似乎非常占用CPU。由于我必须每5秒运行一次外部C代码,CPU利用率就会增加。以下是readline代码: BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(in));
String line = null;
while ( (line = br.readLine()) != null) {
this.pw.add(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
我可以发布整个代码-但是,它与您在上看到的非常相似
有什么建议吗?我感觉它占用了CPU时间,但它本身并不密集。。。这只是为了输入而阻塞。谢谢你的提示。看起来我可以在读取前使用“br.ready()”进行检查。这并没有停止阻塞,但在我的例子中,阻塞时间减少了近50%。