gpt4 book ai didi

c - 暂停线程?

转载 作者:行者123 更新时间:2023-11-30 14:26:14 26 4
gpt4 key购买 nike

我想实现互斥锁。根据我的理解,mutex.lock() 应该像1)检查锁拥有者2)如果拥有锁,则将线程放入等待队列3)挂起该线程,直到另一个线程发送等待信号

但是,没有像pthread_suspend()这样的东西,那么我该如何挂起呢?我发现有人说使用 pthread_con_wait(),但似乎如果我想使用该函数,我必须先设置一个 pthread_mutex 锁,在互斥体中使用 pthread_mutex 是没有意义的。

好吧,如果我对互斥体的理解有误,请指正。

谢谢。

最佳答案

互斥锁、锁和等待条件都是不同的、截然不同的东西。您需要一个互斥变量来实现锁定和等待条件。

锁是一种简单的机制,它通过让所有线程等待锁解锁来防止多个线程同时执行相同的代码。

等待条件是一种稍微复杂的结构,它允许线程监视条件(通常是 bool 标志),并且仅在标志发生有利变化时才唤醒。

在这两种情况下,当线程阻塞(即休眠)时,操作系统的调度原语会自动负责取消调度线程并在其他地方使用可用的计算时间。线程和任务调度不是您通常需要手动担心的事情。

关于c - 暂停线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422816/

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