java - 任务管理器及其与 Java 进程的相关性

标签 java windows multithreading concurrency taskmanager

在 Windows 任务管理器的性能选项卡下,我看到它显示与并发相关的信息。现在我的问题是,在哪里显示进程数量是有多少应用程序进程正在运行?哪里显示线程数量,是正在运行的进程(应用程序)线程数量吗?我问这个问题的原因是因为我不想让它的实际含义与我的想法混淆。提前致谢! :)

图片:http://www.upload.ee/image/4279214/question.png (我无法添加图片,因为我没有 10+ 声誉)

这样可以吗:

public class ThreadAmountTest {

    public static void main(String[] args) {
        for(int i = 0; i < 10; i++)
            new Thread(new Runnable() {
                while(true) {}
            }.start();
    }

}

让线程数上升?

编辑:另外,它说“句柄”,这是什么意思?

最佳答案

一般来说,答案是肯定的,但这可能取决于您使用的 JVM 以及您提供的设置。

在 Java 的早期版本 (1.1) 中,称为 "green threads"使用由 JVM 管理的。在较新的虚拟机上,使用 native 线程,其中 JVM 中的每个线程对应于实际的操作系统线程。但某些虚拟机上可能有切换到“绿色线程”的选项。 (不过,我不知道有任何 JVM 实现仍然使用绿色线程。)

对于 Windows 7 上最新版本的 64 位 Oracle HotSpot Server JVM,我运行了与您类似的测试,发现 Windows 任务管理器中的线程数确实有所增加。您可能会看到类似的结果。

“句柄”是 object handles ,对应操作系统分配给正在运行的程序的各种系统资源(文件、线程、窗口等)。

关于java - 任务管理器及其与 Java 进程的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26065262/

相关文章:

java - 无法使用 ScaleDrawable 缩放 Drawable

java - TypeInitializationException 未处理

java - 如何使用批处理脚本中的参数调用程序?

c - 适用于 x86_64 的 Windows 的免费编译器

c# - 带等待的命名互斥量

java - 使用 Maven 构建企业应用程序

java - 在 hibernate 中过滤计算列? (拥有)

SQL CE 复制

代码在没有 volatile 的情况下工作正常?

multithreading - 为什么事先调用readdir时Perl线程不起作用?