【发布时间】:2012-10-14 07:31:25
【问题描述】:
我想这样使用调度器:
示例
- 3 个不同优先级的 pthread(0、50、99)
如果 99 的 pthread 正在运行,则不允许其他 pthread 运行。 执行顺序要优先考虑
我的实现:
每个 pthread 都是使用该序列创建的
struct sched_param schedparam; // thread scheduler parameter
pthread_create(threadPtr,NULL,(void *)entryPt,NULL);
pthread_attr_setschedpolicy(attrPtr, SCHED_FIFO);
schedparam.__sched_priority=priority;
pthread_attr_setschedparam(attrPtr, &schedparam );
pthread_setschedparam(threadId,SCHED_FIFO,&schedparam );
但它不起作用。
行为:
pthread 的执行顺序与它们创建时的顺序相同。
【问题讨论】:
-
使优先级为 99 的线程成为一个不执行任何 I/O 的忙等待循环;你的问题还存在吗?还要验证您的程序是否以超级用户权限运行。
标签: linux pthreads scheduled-tasks scheduler