线程的创建方式三:实现callable按口。
- 定义一个线程任务类实现callable接口 ,申明线程执行的结果类型。
- 重写线程任务类的call方法,这个方法可以直接返回执行的结果。
- 创建一个Callable的线程任务对象。
- 把callable的线程任务对象包装成一个未来任务对象。
- 把未来任务对象包装成线程对象。
- 调用线程的start()方法启动线程
public class ThreadDemo4 {
public static void main(String[] args) {
Callable<String> callable = new MyCallable();
FutureTask<String> task = new FutureTask<>(callable);
Thread t = new Thread(task);
t.start();
for (int i = 1; i<=100;i++){
System.out.println(Thread.currentThread().getName()+"=>"+"i");
}
try {
String rs = task.get();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyCallable implements Callable<String>{
@Override
public String call() throws Exception {
int sum = 0;
for (int i = 1; i<=100;i++){
System.out.println(Thread.currentThread().getName()+"=>"+"i");
sum+=i;
}
return Thread.currentThread().getName()+"执行的结果是"+sum;
}
}