gpt4 book ai didi

linux - 为什么 sem_t 在 64 位 linux 中是 32 字节?

转载 作者:太空狗 更新时间:2023-10-29 11:15:34 25 4
gpt4 key购买 nike

sem_t 在 64 位 linux 中是 32 字节,但是对于 futex 实现,8 字节就足够了(glibc sem_post),是这样吗?如果它是真的,为什么要让它浪费字节?

实际上我想使用一个只使用 8 个字节的自定义信号量实现,因此可以使用一个信号量输入一个日期。但我不太确定 glibc 实现中的其他字节是否只是填充。

出于我的兴趣,我不会在工作中使用自定义信号量。

最佳答案

AFAIK glibc 需要在不同的 Linux 内核和不同的线程模块之间移植。因此,它为该结构预留了 32 字节的空间(4 个机器字),以备其他系统需要额外的空间来记账。

如果你想用 futexes 做你自己的事情,那就去吧;正如您所说,使用 futex 只需要 8 个字节。

关于linux - 为什么 sem_t 在 64 位 linux 中是 32 字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com