JVM 什么 运行 在后台
JVM whats running on the background
我有一些代码。
它 不是多线程的 ,但是当我 运行 它
我可以看到我的所有 4 个处理器都 运行 占用 80% 而不是 15%。
谁能解释一下非多线程程序如何在所有处理器上 运行。
我发现一些答案说它是垃圾收集器。
背景中还有 运行宁的东西吗?
你可以试试这段代码(我知道这不是最好的写法):
String ans = "";
for (int i = 0; i < 1000000; i++) {
String s = "aba";
ans += s;
if(i % 1000 == 0)
System.out.println(i);
}
}
似乎 GC 和其他内务处理确实导致了此行为(您通过连接实例化了许多字符串对象)。为了绝对确定发生了什么,我建议您查看 VisualVM 工具。
它将显示所有 运行 线程的列表,并通知您 GC activity。
ans += s;
创建一个新字符串并将其分配回 ans
因此它可能是垃圾收集器。
我有一些代码。 它 不是多线程的 ,但是当我 运行 它 我可以看到我的所有 4 个处理器都 运行 占用 80% 而不是 15%。
谁能解释一下非多线程程序如何在所有处理器上 运行。 我发现一些答案说它是垃圾收集器。
背景中还有 运行宁的东西吗?
你可以试试这段代码(我知道这不是最好的写法):
String ans = "";
for (int i = 0; i < 1000000; i++) {
String s = "aba";
ans += s;
if(i % 1000 == 0)
System.out.println(i);
}
}
似乎 GC 和其他内务处理确实导致了此行为(您通过连接实例化了许多字符串对象)。为了绝对确定发生了什么,我建议您查看 VisualVM 工具。
它将显示所有 运行 线程的列表,并通知您 GC activity。
ans += s;
创建一个新字符串并将其分配回 ans
因此它可能是垃圾收集器。