ReentranLock и анализ использования

Во-первых, определение

  Блокировка ReentantLock наследование интерфейса, он является замок возвратный ( * ), в дополнение ко всем проделанной работы могут быть синхронизированы, но при условии , например , как в ответ на прерывание блокировки , может опрашивать запрос на блокировку , блокировку времени , избежавшие многопоточный методы тупиковый.
Во-вторых, основные интерфейсы
  1. недействительные блокировки (): Если блокировка находится в неактивном состоянии, текущий поток получить блокировку, в противном случае, если замок был проведен другим потоком, текущий поток не отключается (заблокированное состояние) до тех пор, текущий поток, чтобы получить блокировку
  2. булево tryLock (): Если блокировка доступна, немедленно получить блокировку и возвращает истину, иначе ложь
  3. аннулированию lockInterruptibly () бросить InterruptedException: в соответствии с замком () метод, но поток прерывается, он бросает исключение InterruptedException
  4. недействительная разблокировка (): текущий поток освобождает блокировку, и если поток не имеет блокировки, но реализация этого метода может привести к ненормальному возникновению
  5. булево isLocked (): Есть ли какая-нить
  6. ReentrantLock (): По умолчанию блокировка нечестно
  7. ReentrantLock (булева справедливый): Fair блокировки конфигурации / без блокировки справедливых (ложь: несправедливо замок, правда: Фаир замок)
  8. Состояние newCondition (): условия объекта, доступ к компоненту ждать уведомления (компонент и заблокировать текущие привязки)
    • аннулируются Await () бросить InterruptedException: ждать эквивалентности класса Object () метод
    • недействительный сигнал (): Объект класс эквивалентно уведомит () метод
    • signalAll недействительное (): класс объекта эквивалентен notifyAll () метод

 

рекомендация

отwww.cnblogs.com/pascall/p/11121428.html