线程A为SCHED_FIFO策略,线程B为SCHED_OTHER策略。创建A,B完成后,令B先sleep一段时间,然后再唤醒。
程序的预计运行情况应该是这样地吧:
A运行
|
|当A结束后
|
B才运行
但是,意想不到的事情花生鸟~~
实际运行情况是这样:
A运行
|
|Bsleep的时间过后
|
B运行,A挂起
|
|B运行完后
|
A继续运行未完成的部分
不明白为嘛SCHED_OTHER的B的可以将SCHED_FIFO的A给抢了。而且A里应该没有使自己阻塞的语句,就算有的话,阻塞结束后也应该立即把B再抢了,不至于B完全结束后才得以运行啊。