Yield (multithreading)
Jump to navigation
Jump to search
In computer science, yield is an action that occurs in a computer program during multithreading, of forcing a processor to relinquish control of the current running thread, and sending it to the end of the running queue, of the same scheduling priority.
Examples
[edit | edit source]Different programming languages implement yielding in various ways.
pthread_yield()in the language C, a low level implementation, provided by POSIX Threads[1]std::this_thread::yield()in the language C++, introduced in C++11.- The Yield method is provided in various object-oriented programming languages with multithreading support, such as C# and Java.[2] OOP languages generally provide class abstractions for thread objects.
yieldin Kotlinsched_yield()in the C standard library, which causes the calling thread to relinquish the CPU.[3]
In coroutines
[edit | edit source]Coroutines are a fine-grained concurrency primitive, which may be required to yield explicitly. They may enable specifying another function to take control. Coroutines that explicitly yield allow cooperative multitasking.
See also
[edit | edit source]Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).