我们想在linux(和pthreads)中使用信号量。
我们首先需要知道信号量上的服务员是否正在以FIFO方式等待它。意思是,等待信号量的最后一个将最后得到它。
谢谢。
答案 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。 [选项结束]