可能这是一个简单的问题,但由于缺乏一些 C# 知识,我很难找到解决方案。
这是交易,我必须用 5 个方法实现一个信号量,lockRead、lockWrite、releaseRead、releaseWrite 和 releaseLockWriter。
前四个方法的名称是不言自明的,最后一个是释放写入锁并原子获取读取锁的方法。
现在我的问题是 releaseRead、releaseWrite 和 releaseLockWriter 只能由分别获得读或写锁的线程调用。
我怎么知道线程是否是锁的所有者?一个可能的解决方案是为每个线程创建 id 并在获取锁时传递它们,然后在释放时再次传递 id 并检查 id 是否是所有者,但可能有更好的方法。