如果我们可以确保只有两个线程可以访问它,如何创建比 ReentrantLock 更好的锁?

问题描述 投票:0回答:1

我想实现一个特定的锁,它的功能就像ReentrantLock,但保证该锁只能被两个线程访问。

我注意到在 ReentrantLock 或其他基于 AbstractQueuedSynchronizer (AQS) 框架的实现中。它有几个阶段的锁定,并且有一个双链队列用于存储等待线程。对于这种情况,不需要它,因为只有两个线程会尝试访问锁。

我想知道如何实现这个机制,手动添加内存屏障,也许实现零分配?或者我应该只使用ReentrantLock?

java multithreading locking memory-barriers reentrantlock
1个回答
0
投票

如果您唯一关心的是双链接队列,那么只需使用对另一个线程的引用即可。
据我了解,

ReentrantLock
中的其余代码没有问题,所以只需使用它即可。

© www.soinside.com 2019 - 2024. All rights reserved.