gpt4 book ai didi

c - mutexes - 定时锁定

转载 作者:太空狗 更新时间:2023-10-29 12:16:25 26 4
gpt4 key购买 nike

我想锁定一个互斥锁,但如果超时到期则失败。此外,我不想在超时后等待更多时间。

我知道你在想什么。 pthread_mutex_timedlock。但是,如果系统时钟在阻塞时发生更改(例如,如果有人在超时期间运行 date --set),它可以在超时应该已经过期后等待数年(目前最多 44 年)。

最佳答案

您对 pthread_mutex_timedlock() 的限制是正确的。它的时钟始终基于挂钟时间。

但是,pthread_cond_timedwait() 并非如此。您可以修改条件变量的属性,使其使用 CLOCK_MONOTONIC(通过使用 pthread_condattr_setclock())。您的定时锁实际上会变成定时等待。

要使用条件变量的定时等待来实现您自己的定时锁版本,您可以使用类似于 this answer 中描述的技术。 .

关于c - mutexes - 定时锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23040132/

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