gpt4 book ai didi

c - 优先获取 pthread 中的锁

转载 作者:行者123 更新时间:2023-11-30 18:06:22 25 4
gpt4 key购买 nike

假设我有一个列表List,并且我有从列表中轮询的pthread_t t1,并且我还有许多其他pthreads将元素插入到列表中。该列表由锁 listLock 锁定。当 t1 拥有锁时 - 如果列表为空,他会使用 pthread_cond_wait(..) 进入休眠状态,并且当线程插入列表时,他会向他发出信号。

我的问题是:如果t1处于等待状态并且有许多线程陷入困境pthread_mutex_lock(&listLock),当锁将被解锁时,t1会优先获得锁还是会与其他线程“争夺”锁?

谢谢

最佳答案

它会战斗,但这是一场公平的战斗。所有调用者都会根据调用等待的顺序放入队列中。这是完全确定性的。

但是考虑到您使用事物的方式,您可能需要考虑使用读/写锁。它允许N个同时读取,但任何时候尝试写入都会锁定每个人,直到完成为止。

关于c - 优先获取 pthread 中的锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5568989/

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