我想实现一个特定的锁,它的功能就像ReentrantLock,但保证该锁只能被两个线程访问。
我注意到在 ReentrantLock 或其他基于 AbstractQueuedSynchronizer (AQS) 框架的实现中。它有几个阶段的锁定,并且有一个双链队列用于存储等待线程。对于这种情况,不需要它,因为只有两个线程会尝试访问锁。
我想知道如何实现这个机制,手动添加内存屏障,也许实现零分配?或者我应该只使用ReentrantLock?
如果您唯一关心的是双链接队列,那么只需使用对另一个线程的引用即可。
据我了解,
ReentrantLock
中的其余代码没有问题,所以只需使用它即可。