gpt4 book ai didi

c++ - 获取线程用于锁定互斥锁

转载 作者:行者123 更新时间:2023-11-28 02:57:13 25 4
gpt4 key购买 nike

我只是想知道如何获取(计数)锁定互斥锁的线程数,例如考虑以下示例

void _foo(void* arg){
pthread_mutex_lock(&_lock);//[ABC]
//doing something
pthread_mutex_unlock(&_lock);
}

所以问题是:我如何找出当前有多少线程正在等待锁定 pthread 中 [ABC] 处的 _lock?或任何其他并行库。

还有一个更令人困惑的问题,是否可以将等待的线程重定向到其他地方?例如,在第一个线程处理之后,等待线程将被重定向到 _bar() 方法,我的意思是在运行时更改代码执行。

最佳答案

第一个问题:在让他们撞到锁之前先数一数。离开锁定状态后倒数。

第二个问题:查看 pthread_mutex_trylock() 根据其结果(是否为 EBUSY)继续 foo() 或调用 bar().

关于c++ - 获取线程用于锁定互斥锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com