问题
1、无限循环的while会导致CPU使用率飙升吗?
2、经常使用Young GC会导致CPU占用率飙升吗?
3、具有大量线程的应用程序的CPU使用率是否较高?
4、CPU使用率高的应用线程的线程数是多少?
5、处于BLOCKED状态的线程会导致CPU使用率飙升吗?
6、分时操作系统中的CPU的消耗是us还是sy?
1.如何计算cpu使用率?
CPU% = 1- idleTime/sysTime *100
idleTime:cpu空闲时间
sysTime:CPU处于用户模式和内核模式的时间总和
2、与cpu使用率有什么关系?
计算密集型程序的CPU密集程度高。
Java中哪些操作更加CPU密集?
3、CPU是否和进程线程有关?
分时操作系统使用循环方式为进程调度分配时间片。如果进程阻塞或者等待,它将不会使用cpu资源。线程称之为轻量级进程,共享进程资源。线程调度在CPU中也是分时的,但在Java中,我们使用JVM进行线程调度。所以线程调度有两种模式:时间共享调度和抢占式调度。
1、while的无限循环会导致CPU使用率飙升吗
会,无限循环将调用CPU寄存器进行计数,会占据cpu资源。
如果线程始终出无限循环,cpu是否会切换线程?
除非操作系统时间片到期,否者无限循环不会放弃占用CPU的资源,并且无限循环将继续向系统请求时间片,直到系统没有空闲时间来执行其他操作。
2、频繁GC会导致CPU占用率飙升?
会,Young GC本身就是JVM用于垃圾收集的操作,他需要计算内存和调用寄存器。Young GC也会占用CPU资源。
3、具有大量线程的应用程序的CPU使用率是否较高
不是,通过jstack检查系统线程状态时,线程总量很大,但处于Runnable和Running状态线程数不多,cpu使用率不一定高。
大多数情况下,如果线程数很大,那么常见的原因是大量线程处于BLOCKED和WAITING状态。
4、CPU占用率高的应用程序,线程数是否较大?
不是,高CPU使用率的关键因素是计算密集型操作。如果一个线程中有大量的计算,CPU使用率也会很高。这也是数据脚本任务需要在大规模集群上运行的原因。
5、处于Blocked状态的线程是否会导致CPU占用率过高?
不会,CPU使用率过高更多是因为上下文切换或者过多的可运行状态的线程。
6、如果分时操作系统中的CPU的值us或者sy值很高,这意味着什么?