立即学习:https://edu.csdn.net/course/play/26270/326864?utm_source=blogtoedu
创建线程的方式
· 通过实现Runnable接口
· 继承Thread
· 使用Callable和FutureTask创建
· 将Runnable或Callable放到线程池ExecutorService中执行
· 实现Callable/Runnable接口,重写call/run方法
· 构建ExecutorService线程池对象,调用线程池execute或submit方法执行线程
· 对于submit方式提交,使用Future来获取线程执行结果
如何获取线程执行结果
·从线程执行流程来看,最终是执行到Runnale实现的run()方法
·看FutureTask里的run方法
·FutureTask会维护线程的状态,在未完成时会一直等待直到完成
·FutureTask会把结果和异常等信息存储在对象的内部变量中
·FutureTask支持超时获取结果,指定具体等待时间