new Thread() {
public void run() {
System.out.println(“直接使用Thread创建”);
};
}.start();
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(“传入Runnable创建”);
}
}).start();
原理:
2.Callable方式
FutureTask task1 = new FutureTask(new Callable(){
public String call(){
return “线程实现方式”;
}
});
Thread thread = new Thread(task1);
thread.start();
try {
System.out.println(task1.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
a.使用线程实现方式
主要是将Callable的实例对象通过FutureTask包装了一下,可以看下FutureTask中构造方法的源码
FutureTask 实现RunnableFuture接口,而RunnableFuture接口继承Runnable, Future接口
因此FutureTask可以包装的Callable的实例中的call()在run()中执行,所以这种方式就等于将Runnable实现的子类实例放入到Thread的构造方法中&