线程的调度由操作系统负责,即使是编译器也没办法完全包办。也即是说,运行时轮到哪个线程运行,
完全由操作系统决定,优先级高的,只是轮到机会高一些,并非完全独占CPU运行;
优先级低的也并非要等高优先级的线程运行完才能轮到,相对来说,轮到的机率低一些。
如果是VxWorks这样的实时系统,那么优先级高表示优先得到响应(这时候它不一定在执行,也可以在睡眠);
Linux系统优先级高表示它越倾向于IO消耗型,那么它在中断到来时肯定要尽快投入运行,但是相对CPU消耗型来说,
实际上它肯定是等待的时候更多,所以优先级高和执行先后没有什么关系。
原文地址:https://www.cnblogs.com/HappyBeibei/p/11108264.html
时间: 2024-10-17 18:50:56