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
Интерфейс 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
, который неоднократно выполняет указанные задачи в определенных интервалах.