1. 关于Future
Future接口包含以下方法:
boolean cancel(boolean mayInterruptIfRunning)
*取消任务的执行。参数指定是否立即中断任务执行,或者等等任务结束
boolean isCancelled()
*任务是否已经取消,任务正常完成前将其取消,则返回 true
boolean isDone()
*任务是否已经完成。需要注意的是如果任务正常终止、异常或取消,都将返回true
V get()
*将会阻塞当前线程,直到返回结果。
V get(long timeout, TimeUnit unit)
同上面的get功能一样,多了设置超时时间。参数timeout指定超时时间,uint指定时间的单位,在枚举类TimeUnit中有相关的定义。如果计算超时,将抛出TimeoutException
在应用中可以使用isDone()方法来查询Future是否已经完成。当任务完成时,调用get()方法获取返回结果。 若直接调用get(),get()方法将会阻塞直到返回结果。
2.应用(工作队列)