Article · Wikipedia archive · Last revised Jul 13, 2026

Yield (multithreading)

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.

Last revised
Jul 13, 2026
Read time
≈ 1 min
Length
180 w
Citations
3
Source

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

Different programming languages implement yielding in various ways.

  • pthread_yield() in the language C, a low level implementation, provided by POSIX Threads1
  • 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.
  • yield in Kotlin
  • sched_yield() in the C standard library, which causes the calling thread to relinquish the CPU.3

In coroutines

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

See also

References

References

  1. "pthread_yield". IBM.
  2. "Thread.yield". Javamex. Retrieved 24 June 2011.
  3. "sched_yield(2) - Linux manual page". man7.org. Retrieved 2025-06-02.