07-让出处理器
6.3 让出处理器
虽然Linux是个抢占式多任务操作系统,它也提供了一个系统调用,支持进程主动让出处理器,并通知调度器选择新的进程来运行。
调用 sched_yield() 函数,会挂起当前正在运行的进程,然后进程调度器会选择一个新的进程来运行,就和内核主动抢占进程一样。注意,在多数情况下,系统中并没有其他就绪进程,让出的进程会立即恢复运行。由于不确定系统是否存在其他就绪进程,而且人们普遍认为应该有其他更好的选择,这一系统调用并不经常使用。
成功时,返回0,失败时,返回-1,并相应设置errno值。在包括Linux在内的多数UNIX系统上,sched_yield()不会失败,总是返回0。然而,一个严谨的程序员还是会检查其返回值: