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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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,当设计一个包含多个移动部件的应用程序时,可能会在高负载下将其最大化,因此可能需要将应用程序的某些部分优先于其他部分。此外,了解应用程序的哪个部分是瓶颈,或者工作最努力,对于确定应用程序对高负载的最佳反应可能很有用 Java内部是否有一种基于线程确定负载的通用方法?是的,如果平台支持,您可以。从: Java虚拟机实现可能支持测量当前线程、任何线程或无线程的CPU时间 下面是一些示例代码: package test.thread.load; import java.lang.management.

当设计一个包含多个移动部件的应用程序时,可能会在高负载下将其最大化,因此可能需要将应用程序的某些部分优先于其他部分。此外,了解应用程序的哪个部分是瓶颈,或者工作最努力,对于确定应用程序对高负载的最佳反应可能很有用


Java内部是否有一种基于线程确定负载的通用方法?

是的,如果平台支持,您可以。从:

Java虚拟机实现可能支持测量当前线程、任何线程或无线程的CPU时间

下面是一些示例代码:

package test.thread.load;

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;

public class ThreadLoadTest
{
    public static void main(final String[] args)
    {
        final ThreadMXBean bean = ManagementFactory.getThreadMXBean();
        for (final long id : bean.getAllThreadIds())
        {
            System.out.println(bean.getThreadInfo(id).getThreadName()
                                  + ": " + bean.getThreadCpuTime(id));
        }
    }
}

也可能有用。

是的,如果平台支持,您可以。从:

Java虚拟机实现可能支持测量当前线程、任何线程或无线程的CPU时间

下面是一些示例代码:

package test.thread.load;

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;

public class ThreadLoadTest
{
    public static void main(final String[] args)
    {
        final ThreadMXBean bean = ManagementFactory.getThreadMXBean();
        for (final long id : bean.getAllThreadIds())
        {
            System.out.println(bean.getThreadInfo(id).getThreadName()
                                  + ": " + bean.getThreadCpuTime(id));
        }
    }
}

设计也可能有用。

设计应清楚地识别不同类型的任务/用例。然后根据需要,这些任务可以在单独的线程或主线程中执行。对于不同类型的任务,可以有不同的线程池。然后在系统上运行不同类型的负载测试,以优化线程池的线程数和相关队列大小。一旦达到系统的最佳数量和期望性能,请继续进行此练习


希望有帮助

设计应清楚地识别不同类型的任务/用例。然后根据需要,这些任务可以在单独的线程或主线程中执行。对于不同类型的任务,可以有不同的线程池。然后在系统上运行不同类型的负载测试,以优化线程池的线程数和相关队列大小。一旦达到系统的最佳数量和期望性能,请继续进行此练习


希望有帮助

这听起来很像教科书上的问题。在谷歌上搜索Java profiler,你会得到很多。mre,这不是教科书上的问题。我只是选择不以第一人称写。Rajaganesh,我正在寻找如何在应用程序内部实现它。这听起来很像教科书上的问题..在google上搜索Java profiler,你会得到很多。mre,这不是教科书上的问题。我只是选择不以第一人称写。Rajaganesh,我正在寻找如何在应用程序内部实现它。