Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
如何在C中指定CPU负载?_C - Fatal编程技术网

如何在C中指定CPU负载?

如何在C中指定CPU负载?,c,C,我只是想知道是否有一个函数限制了这个程序可以占用多少CPU。当我的程序正在做一项艰苦的工作时,我不希望我的C程序占用太多的CPU,使系统落后 在蚀刻到微处理器中的程序中,作为处理器执行的唯一程序,这样一个功能的目的是什么 不,在标准C中没有这样的函数 您可能会在POSIX C中找到一个,但是这意味着操作系统类似于Unix。我的建议是 您最好使用探查器来调整程序,以便使硬作业以最佳方式运行,并使用更少的CPU。。。或者买一台更新更快的计算机来解决这个问题。您的系统应该能够处理您的程序,只要它没有关

我只是想知道是否有一个函数限制了这个程序可以占用多少CPU。当我的程序正在做一项艰苦的工作时,我不希望我的C程序占用太多的CPU,使系统落后

在蚀刻到微处理器中的程序中,作为处理器执行的唯一程序,这样一个功能的目的是什么

不,在标准C中没有这样的函数

您可能会在POSIX C中找到一个,但是这意味着操作系统类似于Unix。我的建议是


您最好使用探查器来调整程序,以便使硬作业以最佳方式运行,并使用更少的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系统上运行。