Futex futex快速用户区互斥的简称是一个在Linux上实现锁定和构建高级抽象锁如信号量和POSIX互斥的基本工具它们第一次出现在内核开发的版其语义在固定下来然后在x系列稳定版内核中出现 Futex 是由Hubertus FrankeIBM Thomas J Watson 研究中心 Matthew KirkwoodIngo MolnarRed Hat和 Rusty RussellIBM Linux 技术中心等人创建的 Futex 由一块能够被多个进程共享的内存空间一个对齐后的整型变量组成这个整型变量的值能够通过汇编语言调用CPU提供的原子操作指令来增加或减少并且一个进程可以等待直到那个值变成正数Futex 的操作几乎全部在用户空间完成只有当操作结果不一致从而需要仲裁时才需要进入操作系统内核空间执行这种机制允许使用 futex 的锁定原语有非常高的执行效率由于绝大多数的操作并不需要在多个进程之间进行仲裁所以绝大多数操作都可以在应用程序空间执行而不需要使用相对高代价的内核系统调用