|
Spec-Zone .ru
спецификации, руководства, описания, API
|
java.util.concurrent пакет определяет три интерфейса исполнителя:
Executor, простой интерфейс, который поддерживает запускающиеся новые задачи.ExecutorService, подынтерфейс Executor, который добавляет опции, что справка управляет жизненным циклом, обеими из отдельных задач и исполнителя непосредственно.ScheduledExecutorService, подынтерфейс ExecutorService, поддерживает будущее и/или периодическое выполнение задач.Как правило, переменные, которые обращаются к объектам исполнителя, объявляются как один из этих трех типов интерфейса, не с исполнителем тип 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 Интерфейс дополнения интерфейса execute с подобным, но более универсальный submit метод. Как execute, submit принимает Runnable объекты, но также и принимает объекты, которые позволяют задаче возвратить значение. submit метод возвращает a объект, который используется, чтобы получить Callable возвращаемое значение и управлять состоянием обоих Callable и Runnable задачи.
ExecutorService также обеспечивает методы для того, чтобы они представили большое количество Callable объекты. Наконец, ExecutorService обеспечивает много методов для того, чтобы они управляли завершением работы исполнителя. Чтобы поддерживать непосредственное завершение работы, задачи должны обработать прерывания правильно.
ScheduledExecutorService Интерфейс взаимодействуйте через интерфейс добавляет методы его родителя ExecutorService с schedule, который выполняет a Runnable или Callable задача после указанной задержки. Кроме того, интерфейс определяет scheduleAtFixedRate и scheduleWithFixedDelay, который неоднократно выполняет указанные задачи в определенных интервалах.