6 个解决方案
#1
先搞清楚CPU的利用率到底是怎么算的,我也不知道,但估计不是你这么算的
#2
当它让出时间片时,操作系统马上进行轮询,即使其他所有进程都不需要时间片运行,也会询问到本进程需要运行,于是下一个时间片还会由本进程把持.当然就认为cpu占用100%了. 只有当一次轮询所有进程都不需要,这个时间片才会算为空闲.
#3
谢谢a_b_c_abc10!我有点不大明白,还想问下,只有所有进程都不需要这个时间片,cpu利用率才不会100%吗?会出现其他任何程序都不需要该个时间片的的情况吗?
#4
一般的个人电脑上,出现大多数程序大多数时间都没有在做时,而只有你的程序在不断轮循,这有什么奇怪的?
#5
哦。 谢谢
#6
>>只有所有进程都不需要这个时间片,cpu利用率才不会100%吗。
不是的,CPU的利用率当然是用时间段来统计的,虽然这个时间段很短。
但问题是你的程序一直在忙,CPU要么在进行切换,要么就是在执行别的程序,要么就是在执行你的程序,自然不会闲着。
一个程序实在没事可干的时候应该退出,或者去睡一觉(调用Sleep),或者在开始等待一个事件发生。
不是的,CPU的利用率当然是用时间段来统计的,虽然这个时间段很短。
但问题是你的程序一直在忙,CPU要么在进行切换,要么就是在执行别的程序,要么就是在执行你的程序,自然不会闲着。
一个程序实在没事可干的时候应该退出,或者去睡一觉(调用Sleep),或者在开始等待一个事件发生。
#1
先搞清楚CPU的利用率到底是怎么算的,我也不知道,但估计不是你这么算的
#2
当它让出时间片时,操作系统马上进行轮询,即使其他所有进程都不需要时间片运行,也会询问到本进程需要运行,于是下一个时间片还会由本进程把持.当然就认为cpu占用100%了. 只有当一次轮询所有进程都不需要,这个时间片才会算为空闲.
#3
谢谢a_b_c_abc10!我有点不大明白,还想问下,只有所有进程都不需要这个时间片,cpu利用率才不会100%吗?会出现其他任何程序都不需要该个时间片的的情况吗?
#4
一般的个人电脑上,出现大多数程序大多数时间都没有在做时,而只有你的程序在不断轮循,这有什么奇怪的?
#5
哦。 谢谢
#6
>>只有所有进程都不需要这个时间片,cpu利用率才不会100%吗。
不是的,CPU的利用率当然是用时间段来统计的,虽然这个时间段很短。
但问题是你的程序一直在忙,CPU要么在进行切换,要么就是在执行别的程序,要么就是在执行你的程序,自然不会闲着。
一个程序实在没事可干的时候应该退出,或者去睡一觉(调用Sleep),或者在开始等待一个事件发生。
不是的,CPU的利用率当然是用时间段来统计的,虽然这个时间段很短。
但问题是你的程序一直在忙,CPU要么在进行切换,要么就是在执行别的程序,要么就是在执行你的程序,自然不会闲着。
一个程序实在没事可干的时候应该退出,或者去睡一觉(调用Sleep),或者在开始等待一个事件发生。