我已经实现了一个缓冲区。缓冲区有两个属性read和write。read函数调用等待read_slot信号量可用。write函数调用等待write_slot。将write_slot信号量安装到初始计数100和最大计数100,而将读取槽初始化为初始计数0和最大计数100。
所以我触发了一个事件来写缓冲区-->减少写槽-->增加读槽。该事件有时会触发得非常快。读操作降低了read_slot并增加了write_slot。因此,此体系结构不会遇到死锁-->因为只有当read_slot为0且write_slot为0时才会发生死锁...这是不可能的,因为槽在公共互斥锁内增加和减少。
然而,我仍然面临着一个僵局。有没有人知道事件触发系统的功能。
发布于 2013-01-21 17:33:12
The event is fired very fast sometimes.为什么不使用生产者-消费者模式呢?显然,你不能不写就读(读操作应该在写操作之后发生)。您可以通过BlockingCollections在.Net中轻松实现这一点。
https://stackoverflow.com/questions/14435401
复制相似问题