linux - 由于 malloc 引起的抢占
问题描述
我正在考虑以下情况,我想和你仔细检查一下。
一个 Linux 进程,具有 2 个或更多线程在不同内核上并行运行。假设它们都以相同的数量调用 malloc,这样 malloc 就不必调用 mmap。换句话说,堆足够大并且(以前)被其他 sbrk 调用增加。在这种情况下,内存分配完全在用户空间中。通过查看 git hub,我看到有一个互斥锁保护 malloc 使用的内部数据结构。
我的问题是,如果线程尝试获取相同的锁,内核是否可以抢占线程?换句话说,其中一个线程将在执行过程中受到惩罚,因为另一个线程已获得该锁。
谢谢,
解决方案
推荐阅读
- javascript - React Native:使用地图和索引渲染时出现问题
- vue.js - vue单击父按钮使单击子组件中的按钮
- python - 从 char 创建一个列表并在 Python 中删除一个元素?
- windows-7-embedded - 反恶意软件是否适用于任何版本的 Windows 7 嵌入式,或者请建议任何 3rd 方反恶意软件嵌入式 Windows7
- vba - 从 If 语句中调用子程序
- python - 带有 python 和 wandbox API 的设备不合适的 ioctl
- ssl-certificate - 在 Microsoft Graph API 中找不到证书路径的信任锚
- python - “BlogListView”对象在 Django 中没有属性“object_list”
- mysql - SQL编写查询满足两个要求
- c - 将数据塞进一条语句