java多线程的实现方式有4种
- 继承Thread类,重写run方法;
- 实现Runnable接口,重写run方法;
- 实现Callable接口通过FutureTask包装器来创建Thread线程;
- 通过线程池创建线程;
在这里简单实现一下Callable的方式
public class CallableDemo1 {
public static void main(String[] args) throws Exception {
MyThread1 th = new MyThread1();
//1.执行callable的方式,需要FutrueTask实现类的支持,用于接收运算结果
FutureTask<Integer> futureTask = new FutureTask<Integer>(th);
System.out.println("action ...");
new Thread(futureTask).start();
System.out.println("end...");
//futureTask 可以于闭锁主线程会等待MyThread1执行完成才继续执行
Integer sunn = futureTask.get();
System.out.println("sum :");
System.out.println(sunn);
}
}
class MyThread1 implements Callable<Integer>{
@Override
public Integer call() throws Exception {
Thread.sleep(5000);
Integer sum = 0 ;
for(int i = 0 ; i<=100;i++){
sum += i;
}
return sum;
}
}
输出效果