Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
64 位 linux 中的 sem_t 是 32 字节,但是使用 futex 实现,8 字节就足够了(glibc sem_post),是真的吗?如果是真的,为什么要浪费字节?
实际上,我想使用仅使用 8 字节的自定义信号量实现,因此可以使用一个信号量到一个日期条目。但我不太确定 glibc 实现中的其他字节只是填充。
只是为了我的建议,我不会在工作中使用自定义信号量。
AFAIKglibc需要跨不同的 Linux 内核和不同的线程模块进行移植。因此,它为结构保留了 32 个字节的空间(4 个机器字),以防其他系统需要额外的空间来记账。
glibc
如果你想用 futex 做你自己的事情,那就去吧;正如您所说,使用 futex 只需要 8 个字节即可。