linux实现线程锁的优先级,如何允许某些线程在锁定互斥锁时具有优先级,请使用PTHREADS...

假定下面的代码正在由10个线程执行。

pthread_mutex_lock(&lock)

Some trivial code

pthread_mutex_unlock(&lock)

为了便于说明,可以说线程是T1,T2,T3 ....

T10。我的要求是,只要T1或T2或T3(即T1,T2或T3中的任何一个)正在等待获取锁,它的其他线程T4,T5,T6 ....

T10都将无法获取。锁,即T1,T2和T3,应优先获得相对于其他线程的锁。

我想可以通过增加线程T1,T2和T3的优先级来完成

即这是伪代码

if this thread is T1 or T2 or T3

increase its priority

pthread_mutex_lock(&lock)

Some trivial code

pthread_mutex_unlock(&lock)

if this thread is T1 or T2 or T3 decrease it priority to normal

请注意,我想要一个适用于Linux平台且应使用pthreads的解决方案。 我真的不在乎其他平台。

还要注意,我并不是真的想使这3个线程成为实时线程,我希望它们表现出它们的默认行为(调度和优先级),除了在上面提到的一小段代码中,我希望它们在获取锁定时始终具有优先级。

我已经阅读了一些有关Linux中的调度策略和调度优先级的手册页,但实际上并不能弄清楚:(

这样行吗?您能为我提供完成上述任务所需的确切pthread API吗?

关于礼来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值