首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >linux中的内存分配是否是非阻塞的?

linux中的内存分配是否是非阻塞的?
EN

Stack Overflow用户
提问于 2011-01-05 09:59:50
回答 4查看 5K关注 0票数 21

我很想知道使用默认的new操作符分配内存是否是非阻塞操作。

例如:

代码语言:javascript
复制
struct Node {
    int a,b;
};

..。

代码语言:javascript
复制
Node foo = new Node();

如果多个线程试图创建一个新的节点,如果其中一个线程在分配过程中被操作系统挂起,是否会阻止其他线程取得进展?

我问这个问题的原因是因为我有一个创建新节点的并发数据结构。然后,我修改了算法以回收节点。在24核机器上,这两种算法的吞吐量性能几乎相同。然而,我随后创建了一个在所有系统内核上运行的干扰程序,以便创建尽可能多的操作系统抢占。与回收节点的算法相比,创建新节点的算法的吞吐量性能降低了5倍。

我很好奇为什么会发生这种情况。

谢谢。

*编辑:告诉我linux的c++内存分配器的代码也会很有帮助。我试着在张贴这个问题之前寻找,但很难找到它。

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

https://stackoverflow.com/questions/4600208

复制
相关文章

相似问题

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