linux c pthread函数,Linux学习笔记:pthread_getschedparam函数

POSIX线程调度参数获取函数分析
本文详细解析了POSIX线程库中的pthread_getschedparam函数,该函数用于获取线程的调度参数。在函数中,首先验证线程ID的有效性,然后检查策略和参数参数是否合法。如果参数正确,函数将返回线程的调度优先级。此函数确保返回的是最近通过pthread_setschedparam或pthread_create设置的优先级,而非受系统调整的实际线程优先级。

/*

* sched_getschedparam.c

*

* Description:

* POSIX thread functions that deal with thread scheduling.

*

* --------------------------------------------------------------------------

*

*      Pthreads-win32 - POSIX Threads Library for Win32

*      Copyright(C) 1998 John E. Bossom

*      Copyright(C) 1999,2005 Pthreads-win32 contributors

*

*      Contact Email: rpj@callisto.canberra.edu.au

*

*      The current list of contributors is contained

*      in the file CONTRIBUTORS included with the source

*      code distribution. The list can also be seen at the

*      following World Wide Web location:

*      http://sources.RedHat.com/pthreads-win32/contributors.html

*

*      This library is free software; you can redistribute it and/or

*      modify it under the terms of the GNU Lesser General Public

*      License as published by the Free Software Foundation; either

*      version 2 of the License, or (at your option) any later version.

*

*      This library is distributed in the hope that it will be useful,

*      but WITHOUT ANY WARRANTY; without even the implied warranty of

*      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

*      Lesser General Public License for more details.

*

*      You should have received a copy of the GNU Lesser General Public

*      License along with this library in thefile COPYING.LIB;

*if not, write to the Free Software Foundation, Inc.,

*      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA

*/

#include "pthread.h"

#include "implement.h"#include "sched.h"

int

pthread_getschedparam (pthread_t thread, int *policy,

struct sched_param *param)

{

int result;

/* Validate the thread id. */

result = pthread_kill (thread, 0);  if (0 != result)

{

return result;

}/*

* Validate the policy and param args.

* Check that a policy constant wasn't passed rather than &policy.

*/

if (policy <= (int *) SCHED_MAX || param == NULL)

{

return EINVAL;

}

/* Fill out the policy. */

*policy = SCHED_OTHER;

/*

* This function must return the priority value set by

* the most recent pthread_setschedparam() orpthread_create()

* for the target thread. It must not return the actual thread

* priority as altered by any system priority adjustments etc.

*/

param->sched_priority = ((ptw32_thread_t *)thread.p)->sched_priority;

return 0;

}

函数首先调用了pthread_kill函数,在查一下pthread_kill的定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值