1、特点
直接继承Thread、实现Runnable接口,在执行完任务之后无法获取执行结果。
但是通过 Callable 和 Future可以获取执行结果。
2、普通方式实现Callable接口
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.*;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class Run implements Callable<Integer> {
private List<Integer> numberList = Arrays.asList(1, 2, 3, 4, 5);
@Override
public Integer call() {
int sum = 0;
for (Integer numberIndx : numberList) {
synchronized (this) {
System.out.println(Thread.currentThread().getName() + " 运行 " + numberIndx);
sum += numberIndx;
}
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return sum;
}
public static void main(Str