首页 > 解决方案 > 由于 malloc 引起的抢占

问题描述

我正在考虑以下情况,我想和你仔细检查一下。

一个 Linux 进程,具有 2 个或更多线程在不同内核上并行运行。假设它们都以相同的数量调用 malloc,这样 malloc 就不必调用 mmap。换句话说,堆足够大并且(以前)被其他 sbrk 调用增加。在这种情况下,内存分配完全在用户空间中。通过查看 git hub,我看到有一个互斥锁保护 malloc 使用的内部数据结构。

我的问题是,如果线程尝试获取相同的锁,内核是否可以抢占线程?换句话说,其中一个线程将在执行过程中受到惩罚,因为另一个线程已获得该锁。

谢谢,

标签: linuxmalloc

解决方案


推荐阅读