gpt4 book ai didi

c - 每个线程组的 Pthread 互斥量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:08 25 4
gpt4 key购买 nike

我正在寻找正确的解决方案来保护线程组,就像我通常对单个线程所做的那样,即:线程 1 和 2 中的一个或两个可以同时锁定互斥锁 M,1 和 2 都不会被放休眠觉。 Mutex M 反对线程 3。因此,如果线程 3 锁定互斥锁,而它被线程 1 或 2 或两者锁定,则线程 3 将进入休眠状态。如果线程 1 或 2 在线程 3 锁定互斥锁时锁定互斥锁,则线程 1 或 2(锁定它的任何一个)也会进入休眠状态,直到线程 3 释放它...

谢谢。

最佳答案

如果你的意思是你不想在一个临界区中有两个以上的线程,而第三个线程不在临界区之外,那么你必须使用一个初始化为 2 的 POSiX 信号量。信号量计数器可以初始化为任何值,每个 sem_wait 递减计数器(锁定它),每个 sem_post 递增它(释放它)。互斥量是初始化为 1 的信号量的特例。

如果您的意思是您想要一个作者线程和两个或更多读者,您可以使用 rwlocks。

关于c - 每个线程组的 Pthread 互斥量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493241/

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