首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux -限制每个进程的线程数

Linux -限制每个进程的线程数
EN

Stack Overflow用户
提问于 2014-06-14 14:51:46
回答 1查看 291关注 0票数 2

我写了一个C++程序,对几个算法做了一些基准测试。其中一些算法正在使用其他库进行计算。这些外部库(我无法控制)使用多线程,这使得很难获得适当的基准测试(有些算法是单线程的,有些是多线程的)。

因此,在进行基准测试时,我希望将线程数限制为1。我是否可以在Linux中启动一个程序,并告诉它最多使用1个线程,而不是使用外部库中的默认线程数(等于内核数量)?

EN

回答 1

Stack Overflow用户

发布于 2014-06-14 15:17:21

从操作系统的角度来看,我不确定您所要求的是不是可能的,操作系统能做什么?当请求下一个线程时返回失败?

我会在库文档中搜索,它们可能会提供它们正在使用的线程数量的配置值。

Alternatively,您可以使用taskset command执行processor affinity

这并不完全符合您的要求,但它可以确保您的程序将在给定的CPU (或一组CPU)上运行。因此,无论产生多少线程,程序在任何时候都将使用最多一个CPU (或指定的CPU数量),因此有效并行度将受到控制。

或者由@goocreations的评论触发的x2 ...欺骗程序相信它们有不同数量的CPU的一种方法是在虚拟机中运行它们(例如VirtualBox)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24217413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档