阅读背景:

Linux线程调度策略SCHED_FIFO不能进行高优先级抢占?

来源:互联网 
下面这段代码是我写来测试使用SCHED_FIFO调度策略时线程运行情况的,其中Thread1和Thread2的优先级分别为10和11,即Thread2的优先级较高。按我的理解,Thread2应该能够抢占Thread1的CPU控制权,即每秒打印一次Thread2。然而程序编译后运行,SHELL和系统都直接死掉了,必须重启虚拟机。如果我把被注释的两句代码任意一句打开,则可以正常运行。似乎是必须低优先级线程主动释放CPU控制权,高优先级任务才能执行,这样还要优先级有何用?我刚接触Linux编程没多久,有点弄不清楚Linux提供的实时调度机制有什么意义了,有没有人能够指点一二?谢谢! 下面这段代码是我写来测试使用SCHED_FIFO调度策略时线程运行情况的,其中Thread1和



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: