Spec-Zone .ru
спецификации, руководства, описания, API
След: Существенные Классы
Урок: Параллелизм
Раздел: Высокоуровневые Объекты Параллелизма
Подраздел: Исполнители
Интерфейсы исполнителя
Домашняя страница > Существенные Классы > Параллелизм

Интерфейсы исполнителя

java.util.concurrent пакет определяет три интерфейса исполнителя:

Как правило, переменные, которые обращаются к объектам исполнителя, объявляются как один из этих трех типов интерфейса, не с исполнителем тип class.

Executor Интерфейс

Executor интерфейс обеспечивает единственный метод, execute, разработанный, чтобы быть понижением замены для идиомы создания общей нити. Если r a Runnable объект, и e Executor объект можно заменить

(new Thread(r)).start();

с

e.execute(r);

Однако, определение execute является менее определенным. Низкоуровневая идиома создает новый поток и сразу запускает его. В зависимости от Executor реализация, execute может сделать ту же самую вещь, но, более вероятно, будет использовать существующий рабочий поток, чтобы работать r, или поместить r в очереди, чтобы ожидать рабочего потока, чтобы стать доступный. (Мы опишем рабочие потоки в разделе по Пулам потоков.)

Реализации исполнителя в java.util.concurrent разрабатываются, чтобы полностью использовать более усовершенствованное ExecutorService и ScheduledExecutorService интерфейсы, хотя они также работают с основой Executor интерфейс.

ExecutorService Интерфейс

ExecutorService дополнения интерфейса execute с подобным, но более универсальный submit метод. Как execute, submit принимает Runnable объекты, но также и принимает Callable объекты, которые позволяют задаче возвратить значение. submit метод возвращает a Future объект, который используется, чтобы получить Callable возвращаемое значение и управлять состоянием обоих Callable и Runnable задачи.

ExecutorService также обеспечивает методы для того, чтобы они представили большое количество Callable объекты. Наконец, ExecutorService обеспечивает много методов для того, чтобы они управляли завершением работы исполнителя. Чтобы поддерживать непосредственное завершение работы, задачи должны обработать прерывания правильно.

ScheduledExecutorService Интерфейс

ScheduledExecutorService взаимодействуйте через интерфейс добавляет методы его родителя ExecutorService с schedule, который выполняет a Runnable или Callable задача после указанной задержки. Кроме того, интерфейс определяет scheduleAtFixedRate и scheduleWithFixedDelay, который неоднократно выполняет указанные задачи в определенных интервалах.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Исполнители
Следующая страница: Пулы потоков