Futex
誰も奪い合っていなければ、ロックはただで取れる。fast userspace mutexの略で、Linuxのスレッド同期を支える部品である。
従来のロックは、空いていても必ずカーネルを経由し、そのたびにシステムコールの費用がかかった。Futexはよくある場合をユーザー空間に移す。競合のないロックの取得は、共有整数に対するアトミック操作だけで済み、カーネルは関与しない。
実際に誰かが待たねばならないときにだけfutex()が呼ばれ、スレッドは起こされるまで眠る。うまく書かれたコードでは競合は稀なので、ほとんどの場合は高速な経路を通る。glibcのミューテックスと条件変数はすべてこの上に作られているが、プログラマがこの呼び出しを直接目にすることはまずない。