< prev index next >
src/java.base/share/classes/java/util/concurrent/Future.java
Print this page
8234131: Miscellaneous changes imported from jsr166 CVS 2021-01
Reviewed-by: martin
*** 54,65 ****
* made-up.)
*
* <pre> {@code
* interface ArchiveSearcher { String search(String target); }
* class App {
! * ExecutorService executor = ...
! * ArchiveSearcher searcher = ...
* void showSearch(String target) throws InterruptedException {
* Callable<String> task = () -> searcher.search(target);
* Future<String> future = executor.submit(task);
* displayOtherThings(); // do other things while searching
* try {
--- 54,65 ----
* made-up.)
*
* <pre> {@code
* interface ArchiveSearcher { String search(String target); }
* class App {
! * ExecutorService executor = ...;
! * ArchiveSearcher searcher = ...;
* void showSearch(String target) throws InterruptedException {
* Callable<String> task = () -> searcher.search(target);
* Future<String> future = executor.submit(task);
* displayOtherThings(); // do other things while searching
* try {
*** 86,114 ****
* @param <V> The result type returned by this Future's {@code get} method
*/
public interface Future<V> {
/**
! * Attempts to cancel execution of this task. This attempt will
! * fail if the task has already completed, has already been cancelled,
! * or could not be cancelled for some other reason. If successful,
! * and this task has not started when {@code cancel} is called,
! * this task should never run. If the task has already started,
! * then the {@code mayInterruptIfRunning} parameter determines
! * whether the thread executing this task should be interrupted in
! * an attempt to stop the task.
! *
! * <p>After this method returns, subsequent calls to {@link #isDone} will
! * always return {@code true}. Subsequent calls to {@link #isCancelled}
! * will always return {@code true} if this method returned {@code true}.
! *
! * @param mayInterruptIfRunning {@code true} if the thread executing this
! * task should be interrupted; otherwise, in-progress tasks are allowed
! * to complete
* @return {@code false} if the task could not be cancelled,
! * typically because it has already completed normally;
! * {@code true} otherwise
*/
boolean cancel(boolean mayInterruptIfRunning);
/**
* Returns {@code true} if this task was cancelled before it completed
--- 86,117 ----
* @param <V> The result type returned by this Future's {@code get} method
*/
public interface Future<V> {
/**
! * Attempts to cancel execution of this task. This method has no
! * effect if the task is already completed or cancelled, or could
! * not be cancelled for some other reason. Otherwise, if this
! * task has not started when {@code cancel} is called, this task
! * should never run. If the task has already started, then the
! * {@code mayInterruptIfRunning} parameter determines whether the
! * thread executing this task (when known by the implementation)
! * is interrupted in an attempt to stop the task.
! *
! * <p>The return value from this method does not necessarily
! * indicate whether the task is now cancelled; use {@link
! * #isCancelled}.
! *
! * @param mayInterruptIfRunning {@code true} if the thread
! * executing this task should be interrupted (if the thread is
! * known to the implementation); otherwise, in-progress tasks are
! * allowed to complete
* @return {@code false} if the task could not be cancelled,
! * typically because it has already completed; {@code true}
! * otherwise. If two or more threads cause a task to be cancelled,
! * then at least one of them returns {@code true}. Implementations
! * may provide stronger guarantees.
*/
boolean cancel(boolean mayInterruptIfRunning);
/**
* Returns {@code true} if this task was cancelled before it completed
< prev index next >