在C中设置线程优先级

时间:2014-11-29 19:56:43

标签: c linux multithreading posix

我如何知道C中的某个帖子是"正在运行"," runnable","阻止"或者"终止"。我知道这些函数存在于Java中,但无法在C语言中找到它们。

此外,我需要多个具有多个优先级的线程,我确实使用 pthread_attr_setschedparam ,使用 SCHED_RR 策略和 EXPLICIT继承但是它剂量&# 39; nt似乎有用吗?

我出错的任何建议?

提前致谢

1 个答案:

答案 0 :(得分:2)

我将告诉您为线程分配调度策略必须遵循的顺序。

1)首先,您创建pthread_attr_t attr变量。

2)初始化它 - pthread_attr_init(&attr)

3)设置显式继承:pthread_attr_setinheritsched(&attr,PTHREAD_EXPLICIT_SCHED);

4)然后使用pthread_attr_setschedpolicy(&attr,SCHED_RR);

设置您的日程安排政策

5)最后创建你的帖子pthread_create(&THREAD_NAME, &attr, FN_NAME, ARGS);

您可以使用此attr变量根据需要使用SCHED_RR策略创建任意数量的线程。

现在如何检查是否设置了所需的策略?您必须使用pthread_attr_getschedpolicy功能。请参阅MAN页面以了解如何使用它http://linux.die.net/man/3/pthread_attr_getschedpolicy

使用不应使用pthread_attr_setschedparam为线程设置SCHED_RR策略。此函数用于为线程分配优先级。有关详细信息,请参阅http://linux.die.net/man/3/pthread_attr_setschedparam