Spec-Zone .ru
спецификации, руководства, описания, API
|
V
- Тип результата возвратился методом get этого Будущегоpublic interface Future<V>
Future<?>
и возвратите null в результате базовой задачи. Демонстрационное Использование (Отмечают, что следующие классы являются все искусственными.)
interface ArchiveSearcher { String search(String target); }
class App {
ExecutorService executor = ...
ArchiveSearcher searcher = ...
void showSearch(final String target)
throws InterruptedException {
Future<String> future
= executor.submit(new Callable<String>() {
public String call() {
return searcher.search(target);
}});
displayOtherThings(); // do other things while searching
try {
displayText(future.get()); // use future
} catch (ExecutionException ex) { cleanup(); return; }
}
}
FutureTask
class является реализацией Future, который реализует Runnable, и так может быть выполнен Executor. Например, вышеупомянутая конструкция с submit могла быть заменена:
FutureTask<String> future =
new FutureTask<String>(new Callable<String>() {
public String call() {
return searcher.search(target);
}});
executor.execute(future);
Эффекты непротиворечивости памяти: Меры, предпринятые асинхронным вычислением, происходят - перед действиями после соответствия Future.get()
в другом потоке.
FutureTask
, Executor
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
cancel(boolean mayInterruptIfRunning)
Попытки отменить выполнение этой задачи.
|
V |
get()
Ожидает в случае необходимости вычисления, чтобы завершиться, и затем получает его результат.
|
V |
get(long timeout, TimeUnit unit)
Ожидает в случае необходимости в течение самое большее данного времени для вычисления, чтобы завершиться, и затем получает его результат, при наличии.
|
boolean |
isCancelled()
true возвратов, если эта задача была отменена прежде, чем это обычно завершалось.
|
boolean |
isDone()
true возвратов, если эта задача завершалась.
|
boolean cancel(boolean mayInterruptIfRunning)
После этого метода возвраты, последующие звонки isDone()
будет всегда возвращать true. Последующие звонки isCancelled()
будет всегда возвращать true если этот метод возвращенный true.
mayInterruptIfRunning
- true, если поток, выполняющий эту задачу, должен быть прерван; иначе, происходящим задачам позволяют завершитьсяboolean isCancelled()
boolean isDone()
V get() throws InterruptedException, ExecutionException
CancellationException
- если вычисление было отмененоExecutionException
- если вычисление выдавало исключениеInterruptedException
- если текущий поток был прерван, ожидаяV get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
timeout
- максимальное время, чтобы ожидатьunit
- единица измерения времени параметра тайм-аутаCancellationException
- если вычисление было отмененоExecutionException
- если вычисление выдавало исключениеInterruptedException
- если текущий поток был прерван, ожидаяTimeoutException
- если ожидание синхронизированного
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92