【发布时间】:2023-04-09 19:13:02
【问题描述】:
我有一定的资源,两个线程一个是生产者,另一个是消费者。 生产者每隔一段时间都会更新资源,更新需要一些时间,我不希望消费者等待。我希望他在生产者更新时使用资源的旧值。 如何在不让消费者等待的情况下同步两个线程
【问题讨论】:
-
是什么让你现在等待?
-
POSIX 线程互斥锁和 try-lock 函数?参见例如this old question 及其答案。然后消费者尝试定期轮询资源,如果它未能锁定互斥锁,就好像什么都没发生一样继续。
-
这个问题是否与自旋锁有关?
-
取决于您的设置。您可以创建一个新资源并在完成后将其复制过来吗?如果没有,我们需要了解有关设置的更多信息
标签: c concurrency posix