Futrue和Callable治理线程第二大法宝,第一法宝线程池

    Callable和Future的关系:

    1. Future.get来获取Callable接口返回的指定结果,还可以通过Future.isDone()来判断任务是否已经执行完了,以及取消这个任务,限时获取任务的结果等
    2. 在call()未执行完毕之前,调用get()的线程会被阻塞,直到call()方法返回了结果后,此时future.get()才会得到该结果,然后主线程才会切换到runnable状态
    3. 所以Future是一个存储器,它存储了call()这个任务的结果,而这个任务的执行时间是无法提前确定的,因为这完全取决于call()方法执行的情况