释放锁定的内存是否会解锁相应的页面
Does freeing locked memory unlock the corresponding pages?
很明显,您可以将mlockall()
和malloc()
结合起来锁定进程在其生命周期中分配的所有页面。通过阅读文档,我不清楚的是释放已经锁定的内存是否意味着自动解锁相应的页面。
如果free
将内存返回给系统(即它被mmap
分配,并将被munmap
释放),那么锁将在解除映射时自动删除。这是大分配的典型情况。
如果free
将内存返回到进程内管理的堆,那么锁将保留。这是小分配的典型情况。
在GNU/Linux上,您可以使用mallopt
来获取和设置使用mmap
分配的阈值;默认值(至少在我的计算机上)是128kb。在其他Unix版本中,如果需要这种级别的控制,可能需要直接使用mmap
。
相关文章:
- 我应该在锁定TBitmap画布后解锁它吗
- 虚假唤醒是否会解锁所有等待线程,甚至是不相关的线程?
- c++ 为什么我不应该从不同的线程解锁互斥锁
- 当只有一个线程主要使用该对象而其他线程很少使用它时,如何最小化该对象的互斥锁锁定?
- 在新作用域中使用unique_lock是否等效于在使用共享资源的工作结束时解锁调用
- C++将互斥锁锁定为来自另一个线程
- 如何使用互斥锁锁定对布尔值的访问?
- 成功的互斥锁锁定阻塞
- 正在解锁手动未定义/不良设计的锁定guard
- 我应该如何在一个功能中锁定wxMutex,并在另一个功能中将其解锁
- mutex::lock() 检查一次解锁状态是否已经被另一个线程锁定?
- 保持 std::mutex 锁定/解锁公开的基本原理
- 等待另一个进程锁定然后解锁 Win32 互斥锁
- 锁定/解锁私有函数中的互斥锁
- 释放锁定的内存是否会解锁相应的页面
- 如何解锁锁定的位图
- 从类返回自动解锁的锁定资源
- perror()调用影响信号量锁定/解锁的问题
- QML - 一键锁定/解锁屏幕方向(安卓和最终的 ios)
- pthread_cond_signal函数是否解锁调用线程锁定的互斥对象