Создать синхронизированный блок на основе владения за пределами потоков - PullRequest
0 голосов
/ 14 февраля 2019

Я ожидал, что это навсегда заблокируется:

synchronized (this){
  synchronized (this){

  }
}

, но имеет смысл, что это не выглядит ... похоже, если текущий поток владеет блокировкой на this, тогда второй вызовпо сути, проходящий.

Существует ли в Java механизм, который может создать критический раздел, который привязан не к текущему потоку, а к чему-то еще?Как то так:

lock.key('foo', l1 -> {
    lock.key('foo', l2 -> {
         // we might never get here
         l1.release();
    });
});
...