所以我正在编写一个接受用户输入的小程序
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String something = input.readLine();
}
}
这里是删除的相关部分,我在 readline() 上运行这个和主线程 block ,但我的 CPU 使用率始终保持在 ~15-20%。
这里是什么,是否有更有效的方式从控制台读取。
编辑:我在 Mac OS 10.8 上,该进程现在已经运行了 20 分钟。 input.readline() 语句包含在 while true 循环中,内部有一些简单的处理,但我知道代码没有到达那里。
最佳答案
我假设您有某种代码来检查 readLine() 的状态,否则 Java 将继续阻塞。
String line = null;
while ((line = br.readLine()) != null) {
// handle contents of line here
}
您最好使用 Scanner 类来读取用户输入。
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
....
关于java - 从控制台读取时 CPU 使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17073831/