0

这是一个假设场景(这不是家庭作业):

几个人在一个有桌子和水槽的厨房里。他们都可以同时吃饭。但是,一次只能使用一个水槽,而且每当有人使用水槽时,就没有人可以吃饭了。

需要什么同步原语以及如何设置?如果这需要一个信号量(例如,一个 .NET 一个http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx),如何配置和使用它来实现这一点?

4

2 回答 2

4

这是典型的读写器问题。读者可以同时阅读(假设没有作者在写),并且任何时候只有一个作者可以写,当有人在写的时候没有人在读。

读写器问题

于 2013-02-27T21:11:57.180 回答
2

正如 zzk 所说,这是一个多读/单写场景,在 .NET 上,您通常会使用ReaderWriterLockSlim类型的锁来同步对资源的访问

于 2013-02-27T21:15:15.410 回答