C语言限制CPU数量
我正在物理机和虚拟机上测试交流代码,我需要限制数量。 C 程序执行期间使用的CPU 数量。有办法做到这一点吗?
I was testing a c code on a physical and virtual machine and i need to limit the no. of cpu used during execution of c program. Is there a way to do this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于 Linux,有
sched_setaffinity
。例如,如果您希望它仅在 CPU 1 和 3 上运行:注意:
sched_setaffinity
和sched_getaffinity
是 Linux 特定的(它们在其他 POSIX 系统上不存在)。在 BSD 上有
cpuset_setaffinity
具有相似的语义。我希望 Solaris 也有类似的功能。For Linux there is
sched_setaffinity
. For instance if you want it to run just on CPUs 1 and 3:Caution:
sched_setaffinity
andsched_getaffinity
are Linux-specific (they don't exist on other POSIX systems).On BSDs there is
cpuset_setaffinity
with similar semantics. I expect Solaris to have a similar feature.不独立于平台,但在 Windows 中,您可以使用
SetProcessAffinityMask
:Not platform-independently, but in Windows, you can use
SetProcessAffinityMask
: