*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> sched_yield (3)              



NAME    [Toc]    [Back]

       sched_yield  - Signals scheduler a willingness to yield to
       another thread

SYNOPSIS    [Toc]    [Back]

       #include <pthread.h>

       void sched_yield(
               void );

LIBRARY    [Toc]    [Back]

       DECthreads POSIX 1003.1c Library (libpthread.so)

STANDARDS    [Toc]    [Back]

       Interfaces documented on this reference  page  conform  to
       industry standards as follows:

       IEEE  Std  1003.1c-1995,  POSIX System Application Program

PARAMETERS    [Toc]    [Back]


DESCRIPTION    [Toc]    [Back]

       This routine forces the running thread to  relinquish  the
       processor  until  it  again becomes the head of its thread
       list. This routine notifies the thread scheduler that  the
       current  thread  is  willing  to  release its processor to
       other threads of equivalent or greater  scheduling  precedence.
 (A thread generally will release its processor to a
       thread of a greater scheduling precedence without  calling
       this  routine.)   If  no  other  threads  of equivalent or
       greater scheduling precedence are ready  to  execute,  the
       thread continues.

       This  routine  can  allow  knowledge  of the details of an
       application to be used to improve its  performance.  If  a
       thread  does  not  call  sched_yield, other threads may be
       given the opportunity to run at arbitrary points (possibly
       even   when   the  interrupted  thread  holds  a  required
       resource).  By  making  strategic  calls  to  sched_yield,
       other threads can be given the opportunity to run when the
       resources are free. This can sometimes improve performance
       by reducing contention for the resource.

       As  a  general  guideline,  consider  calling this routine
       after a thread has released a resource (such as  a  mutex)
       that  is  heavily contended for by other threads. This can
       be especially important if the program  is  running  on  a
       uniprocessor  machine,  or  if  the  thread  acquires  and
       releases the resource inside a tight loop.

       Use this routine carefully and sparingly,  because  misuse
       can   cause   unnecessary  context  switching  which  will
       increase overhead and degrade performance. For example, it
       is counter-productive for a thread to yield while it holds
       a resource that the threads to which it is  yielding  will
       need.  Likewise,  it is pointless to yield unless there is
       likely to be another thread that is ready to run.

RETURN VALUES    [Toc]    [Back]


SEE ALSO    [Toc]    [Back]

       Functions:                  pthread_attr_setschedparam(3),

       Manuals: Guide to DECthreads and Programmer's Guide

[ Back ]
 Similar pages
Name OS Title
pthread_yield OpenBSD yield control of the current thread
pthread_yield_np Tru64 Notifies the scheduler that the current thread is willing to release its processor to other threads ...
sigpending IRIX return set of signals pending for thread (POSIX)
sched_yield Linux yield the processor
sched_yield IRIX yield the processor
sched_yield FreeBSD yield processor
sginap IRIX timed sleep and processor yield function
gang_sched HP-UX Gang Scheduler
lpshut HP-UX start the LP request scheduler,
lpfence HP-UX start the LP request scheduler,
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service