Spec-Zone.ru › OpenJavaFX 8
javafx.concurrent

Интерфейс Worker<V>

Все известные реализующие классы:

ScheduledService, Service, Task



public interface Worker<V>

Worker — это объект, который выполняет работу в одном или нескольких фоновых потоках, состояние которого наблюдаемо и доступно приложениям JavaFX, и который можно использовать из основного потока приложения JavaFX. Данный интерфейс в основном реализуется как Task, так и Service, обеспечивая общий API для обоих классов, что облегчает библиотекам и фреймворкам предоставление работников, хорошо работающих при разработке пользовательских интерфейсов.

Worker может быть или не быть повторно используемым в зависимости от реализации. Например, Task не является повторно используемым, в то время как Service является.

У Worker есть хорошо определённый жизненный цикл. Каждый Worker начинается в состоянии Worker.State.READY. Когда Worker запланирован на выполнение (например, когда метод Service.start() Service вызывается), он переходит в состояние Worker.State.SCHEDULED. Даже Worker, который не запланирован технически, но сразу же запущен (например, с помощью FutureTask.run()) будет переходить через состояние Worker.State.SCHEDULED по пути к состоянию Worker.State.RUNNING.

Когда Worker фактически выполняет свою работу, его состояние переходит в Worker.State.RUNNING. Если Worker завершается нормально, он заканчивает в состоянии Worker.State.SUCCEEDED, и результат работы Worker устанавливается как свойство value. Однако, если во время выполнения Worker возникает исключение, состояние устанавливается в Worker.State.FAILED, и свойство exception устанавливается в произошедшее исключение.

В любое время до завершения работы Worker (то есть, если состояние ещё не Worker.State.SUCCEEDED или Worker.State.FAILED), разработчик может вызвать метод cancel(). Если он вызван, Worker прекратит выполнение (при необходимости, включая использование Thread.interrupt) и состояние изменится на Worker.State.CANCELLED.

Единственное допустимое начальное состояние для Worker — Worker.State.READY, а допустимые конечные состояния — Worker.State.CANCELLED, Worker.State.SUCCEEDED и Worker.State.FAILED. Свойство running устанавливается в true, когда состояние равно Worker.State.SCHEDULED или Worker.State.RUNNING.

Прогресс Worker можно отслеживать через три различных свойства: totalWork, workDone и progress. Эти свойства устанавливаются фактической реализацией интерфейса Worker, но могут наблюдаться кем угодно. workDone — число между -1 (означает неопределённый прогресс) и totalWork включительно. Когда workDone == totalWork, progress будет 100% (или 1). totalWork будет числом между -1 и Long.MAX_VALUE, включительно. Прогресс будет либо -1 (означает неопределённость), либо значением от 0 до 1, включительно, представляющее от 0% до 100%.

Worker, находящийся в состояниях Worker.State.READY или Worker.State.SCHEDULED, всегда будет иметь workDone и progress, установленные в -1. Worker в состоянии Worker.State.SUCCEEDED всегда будет иметь workDone == totalWork и progress == 1. В любом другом состоянии значения этих свойств могут быть любыми значениями в соответствующих допустимых диапазонах.

С тех пор:

JavaFX 2.0

  • Краткое описание свойств

    Все методыМетоды экземпляровАбстрактные методы
    Тип Свойство и описание
    ReadOnlyObjectProperty<Throwable> exception
    Получает ReadOnlyObjectProperty, представляющую любое возникшее исключение.
    ReadOnlyStringProperty message
    Получает ReadOnlyStringProperty, представляющую сообщение.
    ReadOnlyDoubleProperty progress
    Получает ReadOnlyDoubleProperty, представляющую прогресс.
    ReadOnlyBooleanProperty running
    Получает ReadOnlyBooleanProperty, представляющую, работает ли Worker.
    ReadOnlyObjectProperty<Worker.State> state
    Получает ReadOnlyObjectProperty, представляющую текущее состояние.
    ReadOnlyStringProperty title
    Получает ReadOnlyStringProperty, представляющую заголовок.
    ReadOnlyDoubleProperty totalWork
    Получает ReadOnlyDoubleProperty, представляющую максимальное количество работы, которое необходимо выполнить.
    ReadOnlyObjectProperty<V> value
    Получает ReadOnlyObjectProperty, представляющую значение.
    ReadOnlyDoubleProperty workDone
    Получает ReadOnlyDoubleProperty, представляющую текущий прогресс.
  • Краткое описание вложенных классов

    Вложенные классы
    Модификатор и тип Интерфейс и описание
    static class  Worker.State
    Состояние Worker.
  • Краткое описание методов

    Все методыМетоды экземпляровАбстрактные методы
    Модификатор и тип Метод и описание
    boolean cancel()
    Прекращает выполнение этого Worker.
    ReadOnlyObjectProperty<Throwable> exceptionProperty()
    Получает ReadOnlyObjectProperty, представляющую любое возникшее исключение.
    Throwable getException()
    Указывает исключение, произошедшее во время работы Worker, если таковое имеется.
    String getMessage()
    Получает сообщение, связанное с текущим состоянием этого Worker.
    double getProgress()
    Указывает текущий прогресс этого Worker в процентах завершения.
    Worker.State getState()
    Указывает текущее состояние этого Worker.
    String getTitle()
    Необязательный заголовок, который должен быть связан с этим Worker.
    double getTotalWork()
    Указывает максимальное значение для свойства workDoneProperty().
    V getValue()
    Указывает значение или результат работы этого Worker.
    double getWorkDone()
    Указывает текущее количество завершённой работы.
    boolean isRunning()
    True, если состояние равно SCHEDULED или RUNNING.
    ReadOnlyStringProperty messageProperty()
    Получает ReadOnlyStringProperty, представляющую сообщение.
    ReadOnlyDoubleProperty progressProperty()
    Получает ReadOnlyDoubleProperty, представляющую прогресс.
    ReadOnlyBooleanProperty runningProperty()
    Получает ReadOnlyBooleanProperty, представляющую, работает ли Worker.
    ReadOnlyObjectProperty<Worker.State> stateProperty()
    Получает ReadOnlyObjectProperty, представляющую текущее состояние.
    ReadOnlyStringProperty titleProperty()
    Получает ReadOnlyStringProperty, представляющую заголовок.
    ReadOnlyDoubleProperty totalWorkProperty()
    Получает ReadOnlyDoubleProperty, представляющую максимальное количество работы, которое необходимо выполнить.
    ReadOnlyObjectProperty<V> valueProperty()
    Получает ReadOnlyObjectProperty, представляющую значение.
    ReadOnlyDoubleProperty workDoneProperty()
    Получает ReadOnlyDoubleProperty, представляющую текущий прогресс.
  • Подробности свойства

    • state

      ReadOnlyObjectProperty<Worker.State> stateProperty
      Возвращает ReadOnlyObjectProperty, представляющий текущее состояние.

      См. также:

      getState()

    • value

      ReadOnlyObjectProperty<V> valueProperty
      Возвращает ReadOnlyObjectProperty, представляющий значение.

      См. также:

      getValue()

    • exception

      ReadOnlyObjectProperty<Throwable> exceptionProperty
      Возвращает ReadOnlyObjectProperty, представляющий любой возникший исключение.

      См. также:

      getException()

    • workDone

      ReadOnlyDoubleProperty workDoneProperty
      Возвращает ReadOnlyDoubleProperty, представляющий текущий прогресс.

      См. также:

      getWorkDone()

    • totalWork

      ReadOnlyDoubleProperty totalWorkProperty
      Возвращает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое необходимо выполнить. Эти «единицы работы» имеют значение для реализации Worker, например, количество байтов, которые необходимо загрузить, или количество изображений для обработки, или другой подобный показатель.

      См. также:

      getTotalWork()

    • progress

      ReadOnlyDoubleProperty progressProperty
      Возвращает ReadOnlyDoubleProperty, представляющий прогресс.

      См. также:

      getProgress()

    • running

      ReadOnlyBooleanProperty runningProperty
      Возвращает ReadOnlyBooleanProperty, указывающее, запущен ли Worker.

      См. также:

      isRunning()

    • message

      ReadOnlyStringProperty messageProperty
      Возвращает ReadOnlyStringProperty, представляющий сообщение.

      См. также:

      getMessage()

    • title

      ReadOnlyStringProperty titleProperty
      Возвращает ReadOnlyStringProperty, представляющий заголовок.

      См. также:

      getTitle()

  • Подробности метода

    • getState

      Worker.State getState()
      Указывает текущее состояние этого Worker. Начальное значение — State.READY. Задача может быть перезапущена, в этом случае она перейдет из одного из этих конечных состояний (SUCCEEDED, CANCELLED или FAILED) обратно в READY, а затем сразу в SCHEDULED и RUNNING. Эти переходы состояний могут произойти сразу друг за другом, но всегда будут происходить в предписанном порядке.

      Возвращает:

      Текущее состояние этого Worker

    • stateProperty

      ReadOnlyObjectProperty<Worker.State> stateProperty()
      Возвращает ReadOnlyObjectProperty, представляющий текущее состояние.

      См. также:

      getState()

    • getValue

      V getValue()
      Указывает значение или результат этого Worker. Это устанавливается при входе в состояние SUCCEEDED и очищается (устанавливается в null), если Worker переинициализируется (то есть, если Worker является многоразовым Worker и сброшен или перезапущен).

      Возвращает:

      текущее значение этого Worker

    • valueProperty

      ReadOnlyObjectProperty<V> valueProperty()
      Возвращает ReadOnlyObjectProperty, представляющий значение.

      См. также:

      getValue()

    • getException

      Throwable getException()
      Указывает исключение, которое произошло во время выполнения Worker, если оно имело место. Если значение этого свойства null, нет известного исключения, даже если статус FAILED. Если это свойство не null, оно, скорее всего, будет содержать исключение, описывающее причину сбоя.

      Возвращает:

      исключение, если оно имело место

    • exceptionProperty

      ReadOnlyObjectProperty<Throwable> exceptionProperty()
      Возвращает ReadOnlyObjectProperty, представляющий любое возникшее исключение.

      См. также:

      getException()

    • getWorkDone

      double getWorkDone()
      Указывает текущее количество выполненной работы. Ноль или положительное значение указывает прогресс к завершению. Значение этой переменной может или не может меняться от своего значения по умолчанию в зависимости от конкретной реализации Worker. Значение -1 означает, что текущее количество выполненной работы не может быть определено (т. е. оно неопределенно). Значение этого свойства всегда меньше или равно totalWork.

      Возвращает:

      количество выполненной работы

      См. также:

      totalWorkProperty(), progressProperty()

    • workDoneProperty

      ReadOnlyDoubleProperty workDoneProperty()
      Возвращает ReadOnlyDoubleProperty, представляющий текущий прогресс.

      См. также:

      getWorkDone()

    • getTotalWork

      double getTotalWork()
      Указывает максимальное значение для свойства workDoneProperty(). totalWork будет либо -1 (указывая, что количество работы неопределенно), либо ненулевым значением, меньшим или равным Double.MAX_VALUE.

      Возвращает:

      общая работа, которая должна быть выполнена

      См. также:

      workDoneProperty(), progressProperty()

    • totalWorkProperty

      ReadOnlyDoubleProperty totalWorkProperty()
      Возвращает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое необходимо выполнить. Эти «единицы работы» имеют значение для реализации Worker, например, количество байтов, которые необходимо загрузить, или количество изображений для обработки, или другой подобный показатель.

      См. также:

      getTotalWork()

    • getProgress

      double getProgress()
      Указывает текущий прогресс этого Worker в процентах завершения. Значение от нуля до единицы указывает прогресс к завершению. Значение -1 означает, что текущий прогресс не может быть определен (то есть, он неопределен). Это свойство может или не может изменяться от своего значения по умолчанию -1 в зависимости от конкретной реализации Worker.

      Возвращает:

      текущий прогресс

      См. также:

      workDoneProperty(), totalWorkProperty()

    • progressProperty

      ReadOnlyDoubleProperty progressProperty()
      Возвращает ReadOnlyDoubleProperty, представляющий прогресс.

      См. также:

      getProgress()

    • isRunning

      boolean isRunning()
      True, если состояние равно SCHEDULED или RUNNING. При привязке Worker к ProgressIndicator, вы обычно привязываете видимость ProgressIndicator к свойству running Worker, а прогресс ProgressIndicator — к свойству progress Worker.

      Возвращает:

      true, если этот Worker запущен

    • runningProperty

      ReadOnlyBooleanProperty runningProperty()
      Возвращает ReadOnlyBooleanProperty, представляющее, запущен ли Worker.

      См. также:

      isRunning()

    • getMessage

      String getMessage()
      Возвращает сообщение, связанное с текущим состоянием этого Worker. Это может быть что-то вроде «Обработка изображения 1 из 3», например.

      Возвращает:

      текущее сообщение

    • messageProperty

      ReadOnlyStringProperty messageProperty()
      Возвращает ReadOnlyStringProperty, представляющее сообщение.

      См. также:

      getMessage()

    • getTitle

      String getTitle()
      Необязательный заголовок, который должен быть связан с этим Worker. Это может быть что-то вроде «Изменение изображений».

      Возвращает:

      текущий заголовок

    • titleProperty

      ReadOnlyStringProperty titleProperty()
      Возвращает ReadOnlyStringProperty, представляющее заголовок.

      См. также:

      getTitle()

    • cancel

      boolean cancel()
      Прерывает выполнение этого Worker. Вызов этого метода либо удалит этот Worker из очереди выполнения, либо остановит выполнение.

      Возвращает:

      возвращает true, если отмена выполнена успешно

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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