一、知识基础:
1.Thread、Runnable、Callable:都是线程
2.Thread特点:提供了线程等待(wait)、线程睡眠(sleep)、线程礼让(yield)等操作。
3.Runnable和Callable特点:都是接口,并提供对应的实现方法。
4.Runnable和Callable的区别:Runnable无返回值,Callable有返回值。
5.Future:提供了对Runnable和Callable任务的执行结果进行取消、查询是否完成、获取结果、设置结果等操作。
6.FutureTask:Runnable和Future的结合体,即拥有Future的特性。
二、Thread和Runnable的关系
线程使用有两种最常用的写法:
new Thread(new Runnable(){
@Override
public void run(){
//子线程操作
}
}).start();
new Thread(){
@Override
public void run(){
//子线程操作
}
}.start();
三、从源码分析:
class Thread implements Runnable {
private Runnable target;
//构造函数
public Thread(ThreadGroup