阅读量:3
FutureTask的常用方法有:
- get():获取任务的结果,如果任务还没有完成,则阻塞等待任务完成后返回结果。
- get(long timeout, TimeUnit unit):获取任务的结果,如果任务还没有完成,则最多等待指定的时间(由timeout和unit参数决定),如果在等待时间内任务完成则返回结果,否则抛出TimeoutException异常。
- cancel(boolean mayInterruptIfRunning):尝试取消任务的执行。如果任务已经完成或者已经被取消,则该方法返回false;如果任务还没有开始执行,则会尝试取消任务的执行并返回true;如果任务正在执行,并且mayInterruptIfRunning参数为true,则会中断任务的执行并返回true;如果任务正在执行,并且mayInterruptIfRunning参数为false,则无法取消任务的执行并返回false。
- isCancelled():判断任务是否被取消。
- isDone():判断任务是否完成。
- run():执行任务。这个方法会在任务还没有被执行时被调用。
- runAndReset():执行任务并重置任务的状态。这个方法会在任务还没有被执行时被调用,并且在执行完毕后重置任务的状态,使得任务可以重新执行。
- set(V result):设置任务的结果,并标记任务已经完成。
- setException(Throwable throwable):设置任务执行过程中抛出的异常,并标记任务已经完成。
- isPeriodic():判断任务是否是周期性任务。这个方法在FutureTask中没有具体的实现,而是在ScheduledFutureTask中有实现。