Spec-Zone.ru › OpenJDK 8

Интерфейс WatchKey


public interface WatchKey

Токен, представляющий регистрацию объекта watchable в службе наблюдения WatchService.

Ключ наблюдения создается, когда объект наблюдения регистрируется в службе наблюдения. Ключ остается valid до тех пор:

  1. Он отменяется явно, вызывая его метод cancel, или
  2. Отменяется неявно, потому что объект больше недоступен, или
  3. Служба наблюдения закрывается, вызывая метод closing.

Ключ наблюдения имеет состояние. При первоначальном создании ключ считается готовым. Когда обнаруживается событие, ключ переходит в состояние сигнализации и помещается в очередь, чтобы его можно было получить, вызвав методы службы наблюдения poll или take. После сигнализации ключ остается в этом состоянии до тех пор, пока не будет вызван метод reset для возвращения ключа в состояние готовности. События, обнаруженные, когда ключ находится в состоянии сигнализации, помещаются в очередь, но не приводят к повторному размещению ключа в очередь для извлечения из службы наблюдения. События извлекаются путем вызова метода ключа pollEvents. Этот метод извлекает и удаляет все накопленные события для объекта. При первоначальном создании ключ наблюдения не имеет ожидающих событий. Как правило, события извлекаются, когда ключ находится в состоянии сигнализации, что приводит к следующему выражению:

for (;;) {
         // retrieve key
         WatchKey key = watcher.take();

         // process events
         for (WatchEvent<?> event: key.pollEvents()) {
             :
         }

         // reset the key
         boolean valid = key.reset();
         if (!valid) {
             // object no longer registered
         }
     }

Ключи наблюдения безопасны для использования несколькими конкурирующими потоками. В случае нескольких потоков, извлекающих сигнализируемые ключи из службы наблюдения, следует позаботиться о том, чтобы метод reset вызывался только после обработки событий для объекта. Это гарантирует, что в любой момент времени один поток обрабатывает события для объекта.

С момента:
1.7

Методы

Модификатор и тип Метод и описание
void cancel()

Отменяет регистрацию в службе наблюдения.

boolean isValid()

Определяет, является ли этот ключ наблюдения действительным.

List<WatchEvent<?>> pollEvents()

Извлекает и удаляет все ожидающие события для данного ключа наблюдения, возвращая List событий, которые были извлечены.

boolean reset()

Сбрасывает этот ключ наблюдения.

Watchable watchable()

Возвращает объект, для которого был создан данный ключ наблюдения.

Методы

isValid

boolean isValid()

Определяет, является ли этот ключ наблюдения действительным.

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

Возвращает:
true если и только если этот ключ наблюдения действителен

pollEvents

List<WatchEvent<?>> pollEvents()

Извлекает и удаляет все ожидающие события для этого ключа наблюдения, возвращая List событий, которые были извлечены.

Обратите внимание, что этот метод не ожидает, если ожидающих событий нет.

Возвращает:
список извлеченных событий; может быть пустым

reset

boolean reset()

Сбрасывает этот ключ наблюдения.

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

Возвращает:
true если ключ наблюдения действителен и был сброшен, и false если ключ наблюдения не может быть сброшен, потому что он больше не valid

cancel

void cancel()

Отменяет регистрацию в службе наблюдения. После возврата ключ наблюдения будет недействителен. Если ключ наблюдения находится в очереди, ожидая извлечения из службы наблюдения, он останется в очереди до тех пор, пока не будет удален. Ожидающие события, если таковые имеются, остаются в ожидании и могут быть извлечены, вызвав метод pollEvents после отмены ключа.

Если этот ключ наблюдения уже был отменен, вызов этого метода не окажет никакого влияния. После отмены ключ наблюдения остается навсегда недействительным.

watchable

Watchable watchable()

Возвращает объект, для которого был создан этот ключ наблюдения. Этот метод будет продолжать возвращать объект даже после отмены ключа.

Поскольку WatchService предназначен для непосредственного отображения на средства уведомления о событиях файлов (если доступны), многие детали о том, как наблюдаются зарегистрированные объекты, сильно зависят от реализации. Например, при наблюдении за каталогом на предмет изменений, и если каталог перемещен или переименован в файловой системе, нет гарантии, что ключ наблюдения будет отменен, поэтому объект, возвращаемый этим методом, может больше не быть действительным путем к каталогу.

Возвращает:
объект, для которого был создан этот ключ наблюдения

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API