Узнайте, в каком положении мой поток приземлился в ReentrantLock - PullRequest
1 голос
/ 06 июня 2011


Я хочу выяснить, в каком положении LockinQueue для ReentrantLock мой поток находится в?есть ли какая-то магическая блокировка, которая возвращает позицию в очереди при вызове lock.lock ()?Или кто-нибудь знает, как это реализовать?
Заранее спасибо
Томас

1 Ответ

2 голосов
/ 06 июня 2011

@ toto указал мне, что он предоставляет оценку с использованием getQueueLength ().Вы можете взять длину до или после получения блокировки в зависимости от того, почему вы хотите знать длину.

Очередь блокируется меньше, поэтому, какой бы ни была позиция, она может быть неправильной к моменту оценки значения,не говоря уже о том, как метод вернулся.Как правило, вы не интересуетесь этой позицией, поскольку вам следует структурировать свой код, чтобы он редко ожидал блокировки.

Возможно, вы могли бы указать, почему вы заинтересованы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...