Multithreading 为什么jconsole/visualvm在尝试连接到进程(500mbram,4000个线程)时挂起
我正在尝试分析我编写的一个应用程序,它使用4000个线程和500mb内存。 我曾尝试使用JConsole和VisualVM连接到它,但连接从未建立。根据日志,我编写的应用程序似乎运行良好。 我尝试过缩小规模,只使用了4个线程。这很有效Multithreading 为什么jconsole/visualvm在尝试连接到进程(500mbram,4000个线程)时挂起,multithreading,visualvm,jconsole,Multithreading,Visualvm,Jconsole,我正在尝试分析我编写的一个应用程序,它使用4000个线程和500mb内存。 我曾尝试使用JConsole和VisualVM连接到它,但连接从未建立。根据日志,我编写的应用程序似乎运行良好。 我尝试过缩小规模,只使用了4个线程。这很有效 为什么使用大量线程会导致问题?它永远不会建立,还是只是需要一段时间才能连接?是不是JMX线程被饿死了,因为JVM正在颠簸呢?我真的没有等足够长的时间去弄清楚。java在windows中的CPU时间是否有上限。我注意到它不会上升,超过12.5%?值得怀疑。更有可能的
为什么使用大量线程会导致问题?它永远不会建立,还是只是需要一段时间才能连接?是不是JMX线程被饿死了,因为JVM正在颠簸呢?我真的没有等足够长的时间去弄清楚。java在windows中的CPU时间是否有上限。我注意到它不会上升,超过12.5%?值得怀疑。更有可能的是,您的程序在IO上被完全阻止。所有的线程都在等待网络连接吗?没有新工作,没有磁盘IO,只有一个*!“£!?线程负载。可能是由于线程被阻塞队列阻塞。