linux可以设置线程的调度和优先级。支持三种调度方法。 1.SCHED_OTHER 分时调度策略,线程优先级为0; 2.SCHED_FIFO 实时调度策略,先到先服务。一当占用CPU,除非自己阻塞或结束或有更高优先级线程,否则会一直运行,线程优先级为1-99; 3.SCHED_RR 实时调度策略,时间片轮转 。其不会一直占用CPU,运行一个时间片后会让出CPU给自己同优先级的线程; 我编了一点程序,创建两个线程,都是SCHED_FIFO,线程1优先级为1,线程2为99。...
本帖最后由 wawava 于 2012-07-27 11:44 编辑 sched_rr,sched_fifo.优先级大小是怎么排的?我sched_get_priority_min值是1,优先级最大是1还是99? 我看网上有说99是优先级最大的,也有说1是最大的。我内核中的注释是这样的 /* * Priority of a process goes from 0..MAX_PRIO-1, valid RT * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH * tasks are in the range MAX_RT_PRIO..MAX_PRIO-1. Priority * val...
开始考虑这个问题 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/42969/showart_342289.html
本帖最后由 wy200747055 于 2012-04-24 08:49 编辑
程序如下:
#include
为什么我在具体实验时,发现这个linux下的pthread优先级设置貌似没有什么效果。 高优先级的任务,和低优先级的任务平分了cpu。 两个线程均为打印任务。for循环到1000的整数倍则打印一下。结果发现。高低优先级打印都是平分的。。