这个函数可以使用另一个级别等于或高于当前线程的线程先运行。如果没有符合条件的线程,那么这个函数将会立刻返回然后继续执行当前线程的程序。下面这个例子中,只是使用了 sched_yield这个函数,其实就实际效果上,并未体现出其真正的意义,主要旨在体会用法。 #define _MULTI_THREADED #include #include #include #define checkResults(string, val) { \ if(val){ \ printf("Failed with %d at %s", val, string); \ exit(1); \ } \ } #define LOOPCONSTANT 1000 #define THREADS 3 pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int i,j,k,l; void *threadfunc(void *parm) { int loop = 0; int localProcessingCompleted = 0; int numberOfLocalProcessingBursts = 0; int processingCompletedThisBurst = 0; int rc; printf("Entered secondary thread\n"); for (loop=0; loop