信号量服务员订购

时间:2014-01-01 21:27:46

标签: linux pthreads semaphore

我们想在linux(和pthreads)中使用信号量。

我们首先需要知道信号量上的服务员是否正在以FIFO方式等待它。意思是,等待信号量的最后一个将最后得到它。

谢谢。

1 个答案:

答案 0 :(得分:2)

来自http://pubs.opengroup.org/onlinepubs/009696799/functions/sem_post.html的手册页 它不是FIFO等待队列:

  

[PS] [Option Start]如果支持Process Scheduling选项,   应以适合的方式选择要解锁的线程   调度策略和参数对阻塞有效   线程。在调度程序SCHED_FIFO和SCHED_RR的情况下,   优先级最高的等待线程应该被解除阻塞,如果有的话   一个以上的最高优先级线程阻塞等待   信号量,然后是一直在等待的最高优先级线程   最长的是畅通无阻的。如果“进程计划”选项不是   已定义,未指定要取消阻止的线程的选择。 [选项   端]

     

[SS] [Option Start]如果是Process Sporadic Server选项   支持,调度策略是SCHED_SPORADIC,语义   按照上面的SCHED_FIFO。 [选项结束]