如何在C中指定CPU负载?
我只是想知道是否有一个函数限制了这个程序可以占用多少CPU。当我的程序正在做一项艰苦的工作时,我不希望我的C程序占用太多的CPU,使系统落后 在蚀刻到微处理器中的程序中,作为处理器执行的唯一程序,这样一个功能的目的是什么 不,在标准C中没有这样的函数 您可能会在POSIX C中找到一个,但是这意味着操作系统类似于Unix。我的建议是如何在C中指定CPU负载?,c,C,我只是想知道是否有一个函数限制了这个程序可以占用多少CPU。当我的程序正在做一项艰苦的工作时,我不希望我的C程序占用太多的CPU,使系统落后 在蚀刻到微处理器中的程序中,作为处理器执行的唯一程序,这样一个功能的目的是什么 不,在标准C中没有这样的函数 您可能会在POSIX C中找到一个,但是这意味着操作系统类似于Unix。我的建议是 您最好使用探查器来调整程序,以便使硬作业以最佳方式运行,并使用更少的CPU。。。或者买一台更新更快的计算机来解决这个问题。您的系统应该能够处理您的程序,只要它没有关
您最好使用探查器来调整程序,以便使硬作业以最佳方式运行,并使用更少的CPU。。。或者买一台更新更快的计算机来解决这个问题。您的系统应该能够处理您的程序,只要它没有关于CPU时间的提升权限。如果您使用的是Windows,则有一个
Sleep()
函数,您可以每隔一段时间执行一次,这将使程序的线程停止指定的毫秒数,但现代操作系统不允许程序占用系统资源(反正是普通程序)。这包括Windows和UNIX(Linux、Mac)系统
你不能用C语言做你想做的事情。你必须进入操作系统,然后代码就不可移植了。听起来你想保持它的可移植性,所以我认为你没有任何选择。除非你采取额外的措施,否则你的C程序不太可能减慢系统的其余部分。也就是说,大多数操作系统都允许进程降低其优先级,以便只有在没有其他事情发生的情况下才能运行 在Windows中,您可以尝试以下操作:
SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_BEGIN);
在Unix中,它如下所示:
int myPriority = getpriority(PRIO_PROCESS, 0);
setpriority(PRIO_PROCESS, 0, myPriority + 20);
你会想为自己制定一些细节。在Unix中,较高的数字优先级较低,但+20有点随意。Um。。。C不是C++。请参阅在POSIX系统上运行。