ReentrantReadWriteLock 有限制吗?我现在正在测试我的应用程序,当我有 20 个线程时,我的写锁似乎不再发出锁(返回 true:tryLock()
)。
最佳答案
限制为 65535 个锁,因此您似乎不太可能使用 20 个线程达到该限制。 (虽然可能,但该限制确实会计算可重入的获取。但是,违反该限制会导致抛出错误,而不是 tryLock()
的错误返回值。)
更有可能的是,您正处于系统足够繁忙的时刻,以至于当您尝试 tryLock()
时,锁不太可能在该时刻可用。您可能应该切换到一个具有合理超时阻塞的调用,以便线程等待,直到其他线程完成并且锁变得可用。
关于java - 可重入ReadWriteLock限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279744/