linux线程的优先级设置
来源:互联网 发布:网络框架师 编辑:程序博客网 时间:2024/05/03 21:42
转自:http://blog.csdn.net/lanseshenhua/article/details/5524797
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <string.h>
void * thr_fun(void *arg)
{
int policy, ret;
struct sched_param param;
//获取线程调度参数
ret = pthread_getschedparam(pthread_self(), &policy, ¶m);
if(ret!=0)
{
printf("pthread_getschedparam %s/n", strerror(ret) );
exit(1);
}
if (policy == SCHED_FIFO)
{
printf("policy:SCHED_FIFO/n");
}
else if (policy == SCHED_OTHER)
{
printf("policy:SCHED_OTHER/n");
}
else if (policy == SCHED_RR)
{
printf("policy:SCHED_RR/n");
}
printf("param:%d/n", param.sched_priority);
long long i;
while (1) {
i++;
i *= 2;
}
pthread_exit(NULL);
}
int main(void)
{
int ret;
pthread_t tid;
pthread_attr_t attr;
int policy, inher;
struct sched_param param;
//初始化线程属性
pthread_attr_init(&attr);
//获取继承的调度策略
ret = pthread_attr_getinheritsched(&attr, &inher);
if (ret!=0)
{
printf("pthread_attr_getinheritsched/n%s/n", strerror(ret));
exit(1);
}
//
if (inher == PTHREAD_EXPLICIT_SCHED)
{
printf("PTHREAD_EXPLICIT_SCHED/n");
}
else if (inher == PTHREAD_INHERIT_SCHED)
{
printf("PTHREAD_INHERIT_SCHED/n");
inher = PTHREAD_EXPLICIT_SCHED;
}
//设置继承的调度策略
//必需设置inher的属性为 PTHREAD_EXPLICIT_SCHED,否则设置线程的优先级会被忽略
ret = pthread_attr_setinheritsched(&attr, inher);
if (ret!=0)
{
printf("pthread_attr_setinheritsched/n%s/n", strerror(ret));
exit(1);
}
policy = SCHED_FIFO;//在Ubuntu9.10上需要root权限
//设置线程调度策略
ret = pthread_attr_setschedpolicy(&attr, policy);
if (ret!=0)
{
printf(" pthread_attr_setschedpolicy/n%s/n", strerror(ret));
exit(1);
}
param.sched_priority = 3;
//设置调度参数
ret = pthread_attr_setschedparam(&attr, ¶m);
if (ret!=0)
{
printf(" pthread_attr_setschedparam/n%s/n", strerror(ret));
exit(1);
}
//创建线程
ret = pthread_create(&tid, &attr, thr_fun, NULL);
if (ret!=0)
{
printf("pthread_create/n%s/n", strerror(ret));
exit(1);
}
while (1) {
printf("hello world/n");
}
pthread_join(tid, NULL);
pthread_exit(NULL);
}
- linux线程的优先级设置
- linux线程的优先级设置
- linux线程的优先级设置
- linux线程的优先级设置
- linux线程的优先级设置
- Linux:设置“线程”优先级
- linux线程优先级设置
- 在Linux中设置线程的优先级
- 在Linux中设置线程的优先级
- 设置线程的优先级
- 设置线程的优先级
- linux下设置线程优先级
- linux下设置线程优先级
- 如何在linux/unix中设置线程的优先级
- 如何在linux/unix中设置线程的优先级
- 如何在linux/unix中设置线程的优先级
- 如何在linux/unix中设置线程的优先级
- 如何在linux/unix中设置线程的优先级
- hadoop1.0.3下,系统中使用其它的帐号访问hadoop,出现Permission denied的解决办法
- Linux按行读取文件
- IccProvider中的ADN/FDN/SDN
- 淘之道——商城时代中小卖家生存法则
- 不止创新:跟风也是条好出路!
- linux线程的优先级设置
- ASP.NET 4.0 与 Entity Framework 4-第二篇-使用Entity Framework 进行CRUD操作
- java socket编程
- 多线程的基础知识
- TUXEDO函数说明
- 使用Busybox-1.2.0制作根文件系统
- 学计算机的你们伤不起啊
- How do I get a preference value?
- 技术主管最怕遇上的程序员