2013-06-23 51 views
0

我有一定的资源和两个线程一个是生产者,另一个是消费者。 生产者每次更新资源的时间间隔和更新需要一些时间,我不希望消费者等待。我希望他在生产者更新时使用原有的资源值。 如何在不让消费者等待的情况下同步这两个线程生产者消费者并发性没有等待POSIX

+1

什么让你现在等待? –

+1

POSIX线程互斥锁和try-lock函数?见例如[这个老问题](http://stackoverflow.com/questions/9258308/how-to-use-pthread-mutex-trylock)及其答案。然后,消费者会尝试定期轮询资源,如果它无法锁定互斥量,就会发生任何事情。 –

+0

问题与螺旋锁有关吗? – Recker

回答

0

共享资源在被更新/读取时将不得不被锁定。我猜消费者可以将资源复制到自己的缓冲区中?还是会花费很长时间?

2

您可以拥有一个原子指针,消费者通过它读取生产者生成的内容。一旦生产者生成新的数据,改变原子指针的值来指向新的数据。