Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的非活动线程_Java_Multithreading - Fatal编程技术网

java中的非活动线程

java中的非活动线程,java,multithreading,Java,Multithreading,在我使用线程的应用程序中,我通常创建线程,然后启动它们,等待它们最终使用join方法。 我观察到有一段时间主进程处于非活动状态,我不知道原因。在附图中,可以确认有四个线程正在工作,主线程处于非活动状态。在下图中,它以紫色表示: 为什么会出现这种停机?谢谢我编辑并编译了您的示例,并编写了JFR。在JMC中,我看到的与任何其他多线程java应用程序中的情况相同。所以我认为问题出在profiler工具中。 可能是出于监视目的,它以异常的方式停止主线程。也许这是错误的。使用Oracle Java任务控

在我使用线程的应用程序中,我通常创建线程,然后启动它们,等待它们最终使用join方法。 我观察到有一段时间主进程处于非活动状态,我不知道原因。在附图中,可以确认有四个线程正在工作,主线程处于非活动状态。在下图中,它以紫色表示:


为什么会出现这种停机?谢谢

我编辑并编译了您的示例,并编写了JFR。在JMC中,我看到的与任何其他多线程java应用程序中的情况相同。所以我认为问题出在profiler工具中。 可能是出于监视目的,它以异常的方式停止主线程。也许这是错误的。使用Oracle Java任务控制。这个工具必须是正确的


什么是“不活跃”的意思?你能为你的图表提供legenda来理解不同颜色的含义吗?绿色表示线程正在运行。紫色表示线程处于非活动状态,黄色表示线程正在等待。但“非活动”是什么意思?在OracleJava任务控制中,紫色表示线程休眠。没有“不活跃”一词。你用什么工具来分析线程?不活动还是休眠,我不在乎。主线程应该一直工作,直到底部的四个线程开始工作。我在Netbeans中使用配置文件工具。这可能很重要。你能提供你的代码吗?我正试图用Oracle Java任务控制获得相同的图形,但我不知道怎么做。在打开Netbeans和JMC之后,我启动flight recorder并运行应用程序。之后,我转到JMC中的事件图,但在main中我只看到了一个名为AWT EventQueue的东西。你能告诉我步骤吗?非常感谢在这里,您可以学习如何运行JFR记录器。尝试从命令行执行此操作-它实际上比任何具有特殊参数的IDE都要简单。在您的例子中,应该是这样的:
java-XX:+UnlockCommercialFeatures-XX:+FlightRecorder-XX:StartFlightRecording=duration=60s,filename=myrecording.jfr threads.threads
然后从%JDK_HOME%/bin打开jmc并打开此文件。转到事件图,您将看到上面的屏幕截图。