调用
这些是我所能确定的唯一区别:
-
还有其他的区别吗?特别是,在共享内存段上使用
mlock()
和在相同的内存上调用shmctl(SHM_LOCK)
有什么区别呢?这些是我所能确定的唯一区别:
-
mlock()
保证所有锁定的页面在其返回时已被加载。而shmctl(SHM_LOCK)
防止交换,但不主动加载非驻留页面。
- shmctl(SHM_LOCK)
只能用于共享内存段。
- shmctl(SHM_LOCK)
在共享内存段的权限中设置了一个额外的标志(SHM_LOCKED
)。还有其他的区别吗?特别是,在共享内存段上使用
mlock()
是否有任何不良影响?
mlock
比shmctl
更严格。因此,它可能会施加限制,降低效率。 - Shahbaz