|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于在linux中,用户权限很大,做任何事情都很自由,所以,你往往需要知道你做的每一步在干什么。
Linux内核的三种调剂战略:
1,SCHED_OTHER分时调剂战略,
2,SCHED_FIFO及时调剂战略,先到先服务。一旦占用cpu则一向运转。一向运转直到有更高优先级义务抵达或本人保持
3,SCHED_RR及时调剂战略,工夫片轮转。当历程的工夫片用完,体系将从头分派工夫片,并置于停当行列尾。放在行列尾包管了一切具有不异优先级的RR义务的调剂公允
Linux线程优先级设置
起首,能够经由过程以下两个函数来取得线程能够设置的最高和最低优先级,函数中的战略即上述三种战略的宏界说:
intsched_get_priority_max(intpolicy);
intsched_get_priority_min(intpolicy);
SCHED_OTHER是不撑持优先级利用的,而SCHED_FIFO和SCHED_RR撑持优先级的利用,他们分离为1和99,数值越年夜优先级越高。
设置和猎取优先级经由过程以下两个函数:
intpthread_attr_setschedparam(pthread_attr_t*attr,conststructsched_param*param);
intpthread_attr_getschedparam(constpthread_attr_t*attr,structsched_param*param);
比方以下代码创立了一个优先级为10的线程:
structsched_param
{
int__sched_priority;//所要设定的线程优先级
};
例:创立优先级为10的线程
pthread_attr_tattr;
structsched_paramparam;
pthread_attr_init(&attr);
pthread_attr_setschedpolicy(&attr,SCHED_RR);
param.sched_priority=10;
pthread_attr_setschedparam(&attr,¶m);
pthread_create(xxx,&attr,xxx,xxx);
pthread_attr_destroy(&attr);
</p>
只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。 |
|