如果我的显示器具有以下结构
if( [condition lock condition])
{
do{
cond.lock()
}while([condition lock condition]);
}
ReentrantLock(true)是否可以防止任何可能的饥饿情况?将RetruerantLock()构造函数作为参数放入true会创建一个由JVM管理的FIFO队列。但是,如果我们继续使用while循环调用cond.lock(),那么某个线程是否有可能饿死?
最佳答案
构造函数的布尔参数用于“公平”。在这种情况下,优先考虑最长的等待线程。它不会对您描述的场景产生影响。
同一线程的递归锁没有饥饿问题。但是这样的调用限制为2147483647。
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantLock.html#ReentrantLock(boolean)
关于java - 饥饿预防和ReentrantLock(true);,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20022182/