Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中设置线程优先级_C_Linux_Multithreading_Posix - Fatal编程技术网

在C语言中设置线程优先级

在C语言中设置线程优先级,c,linux,multithreading,posix,C,Linux,Multithreading,Posix,我如何知道C中的线程是“正在运行”、“可运行”、“阻塞”还是“终止”。我知道Java中存在这样的函数,但在C中找不到 此外,我需要具有多个优先级的多线程,我使用了pthread\u attr\u setschedparam,使用了SCHED\u RR策略和显式继承,但它似乎不起作用 有什么建议我哪里出了问题吗 提前感谢我将告诉您为线程分配调度策略必须遵循的顺序 1) 首先创建pthread\u attr\u attr变量 2) 初始化它-pthread\u attr\u init(&attr)

我如何知道C中的线程是“正在运行”、“可运行”、“阻塞”还是“终止”。我知道Java中存在这样的函数,但在C中找不到

此外,我需要具有多个优先级的多线程,我使用了pthread\u attr\u setschedparam,使用了SCHED\u RR策略和显式继承,但它似乎不起作用

有什么建议我哪里出了问题吗


提前感谢

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

1) 首先创建
pthread\u attr\u attr
变量

2) 初始化它-
pthread\u attr\u init(&attr)

3) 设置显式继承:
pthread\u attr\u setinheritsched(&attr,pthread\u explicit\u SCHED)

4) 然后使用
pthread\u attr\u setschedpolicy(&attr,SCHED\u RR)设置调度策略

5) 最后创建线程
pthread\u create(&thread\u NAME,&attr,FN\u NAME,ARGS)

您可以使用此
attr
变量,使用
SCHED_RR
策略创建任意数量的线程

现在如何检查是否设置了所需的策略?您必须使用
pthread\u attr\u getschedpolicy
函数。参考手册页了解如何使用它


Use不应使用
pthread\u attr\u setschedparam
为线程设置
SCHED\u RR
策略。此函数用于为线程分配优先级。有关更多详细信息,请参阅。

请访问描述的链接。提供必要的详细信息,包括您的代码和相关错误(如果有),将允许这里的每个人帮助您回答问题。@David我看不出这个问题缺少什么。问题是明确的,并提供了答案的所有要求。你错过了什么?OP询问如何查询某些信息,为什么需要代码?嘿,我能知道怎么做吗?您是否使用
pthread\u attr\u init
初始化了
pthread\u attr\u init
变量?是的,我使用pthread\u attr\u init()初始化了它