【发布时间】:2014-12-30 17:05:54
【问题描述】:
我有多个线程将数据写入一个公共源,我希望两个线程在当且仅当它们接触同一条数据时才相互阻塞。
如果有办法专门锁定任意键就好了:
string id = GetNextId();
AquireLock(id);
try
{
DoDangerousThing();
}
finally
{
ReleaseLock(id);
}
如果没有其他人试图锁定同一个密钥,我希望他们能够同时运行。
我可以通过一个简单的互斥体字典来实现这一点,但我需要担心驱逐旧的、未使用的锁,如果集合变得太大,这可能会成为一个问题。
是否有这种类型的锁定模式的现有实现。
【问题讨论】:
标签: c# synchronization mutex