Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Futex
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Kernel system call}} In [[computing]], a '''futex''' (short for "fast userspace [[mutual exclusion|mutex]]") is a [[Kernel (operating system)|kernel]] [[system call]] that [[programmer]]s can use to implement basic [[lock (computer science)|locking]], or as a building block for higher-level locking abstractions such as [[semaphore (programming)|semaphore]]s and [[POSIX]] mutexes or [[condition variable]]s. A futex consists of a [[kernel (operating system)|kernel-]]space ''wait queue'' that is attached to an [[Atomic operations|atomic]] [[integer]] in [[userspace]]. Multiple [[Process (computing)|processes]] or [[Thread (computer science)|threads]] operate on the integer entirely in userspace (using [[atomic operation]]s to avoid interfering with one another), and only resort to the fast but still more expensive [[system call]]s to request operations on the wait queue (for example to wake up waiting processes, or to put the current process on the wait queue). A properly programmed futex-based lock will not use system calls except when the lock has contention; since most operations do not require arbitration between processes, this will not happen in most cases.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)