isDone()方法:判断线程是否执行完毕 ,执行完毕并不代表成功执行完毕,也可能是中断了不在执行了,获取异常了也都是执行完毕了
    isCancelled(): 是否取消

    线程池的submit方法返回Future对象:
    首先,我们要给线程池提交我们的任务,提交时线程池会立刻返回给我们一个空的future容器。当线程的任务一旦执行完毕,也就是当我们可以获取结果的时候,线程池便会把该结果填入到之前给我们的那个future中去(而不是创建一个新的Future),我们此时便可以从该Future中获取任务的执行结果

    cancel方法:取消任务的执行
    1.如果这个任务还没执行,那么任务会被正常取消,未来也不会被执行,方法返回true
    2.如果任务已完成,或者已经取消;那么cancel()方法会执行失败,方法返回false
    3.如果这个任务已经开始执行了,那么这个取消方法将不会直接取消该任务,而是会根据我们填的参数mayInterruptIfRunning做判断:
    如果传入的是true,则会发出一个中断信号
    如果传入的是false,则不会收到中断信号;

    Futrue.cancel(true)适用于:
    1.任务能处理interrupt
    Future.cancel(false)仅用于避免启动尚未启动的任务,适用于:
    1. 未能处理interrupt的任务 2. 不清楚任务是否支持取消 3. 需要等待已经开始的任务执行完成